Da época que foi feito essas aulas até a data atual, parece que tece uma mudança onde o código id 174 ao invés de retornar um objeto com a imagem dizendo que não encontrou o jogo, ele não retorna mais nada. No próprio Postman ele retorno o 404 e não mais o 200. O erro não está na criação do objeto jogo mas no consumo da API. Antes dessa refatoração a linha val meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)
precisava ficar dentro do runCatching. Após a refatoração a forma mais fácil que encontrei de resolver foi fazer esta alteração de onde começa o runCatching para que inclua val informacaoJogo = buscaApi.buscaJogo(busca):
package br.com.alura.alugames.main
import br.com.alura.alugames.modelo.Jogo
import br.com.alura.alugames.servicos.ConsumoApi
import java.util.*
fun main() {
val leitura = Scanner(System.`in`)
println("Digite o código do jogo: ")
val busca = leitura.nextLine()
val buscaApi = ConsumoApi()
var meuJogo: Jogo? = null
val resultado = runCatching {
val informacaoJogo = buscaApi.buscaJogo(busca)
meuJogo = Jogo(informacaoJogo.info.title, informacaoJogo.info.thumb)
}
resultado.onFailure {
println("Jogo não encontrado. Tente outro id.")
}
resultado.onSuccess {
println("Deseja inserir descrição personalizada? S/N")
val opcao = leitura.nextLine()
if (opcao.equals("s", true)) {
println("Insira a descrição personalizada para o jogo:")
val descricaoPersonalizada = leitura.nextLine()
meuJogo?.descricao = descricaoPersonalizada
} else {
meuJogo?.descricao = meuJogo?.titulo
}
println(meuJogo)
}
}