1
resposta

Não atualiza o ID na hora da inserção!

Pessoal, estou escrevendo as novas classes feito na aula em kotlin e depois dessa refatoração de Salvar o Produto, quando salva internamente ele não está trazendo o último id, ficando como 0, daí só atualiza quando eu busco os dados de novo. Poderiam me ajudar?

fun salva(produto: Produto, callback: CallbackDados<Produto>) {
        salvaAPI(produto, callback)

    }

    private fun salvaAPI(produto: Produto, callback: CallbackDados<Produto>) {
        produtoService.salva(produto).enqueue(object : Callback<Produto> {
            override fun onResponse(call: Call<Produto>, response: Response<Produto>) {
                if (response.isSuccessful) {
                    val produtoSalvo = response.body()!!
                    salvaInterno(produtoSalvo, callback)
                } else {
                    callback.falha("Falha na resposta")
                }
            }


            override fun onFailure(call: Call<Produto>, t: Throwable) {
                callback.falha("Erro: ${t.message}")
            }

        })
    }

    private fun salvaInterno(produtoSalvo: Produto, callback: CallbackDados<Produto>) {
        BaseAsyncTask({
            val id = dao.salva(produtoSalvo)
            dao.buscaProduto(id)
        }, callback::sucesso)
                .execute()
    }
 interface  CallbackDados<T> {
        fun sucesso(dados: T)
        fun falha(erro: String)
    }
1 resposta

Oi Guilherme, tudo bem ?

To um pouco confuso com esse seu código, consegue explicar qual momento tem problema ?