Olá, não estava conseguindo avançar dado que precisei fazer uma refatoração por conta do consumo da API, por isso ajustei o código da main de uma mandeira que eu pudesse avançar apenas com o if tratando, não sei se lá pra frente gerará grandes impactos, mas gostaria de deixar minha contribuição e quem puder sugerir algo mais elaborado, sinta-se à vontade.
Na classe ConsumoApi na funcao buscaJogo:
fun buscajogo(id: String): InfoJogo {
val client: HttpClient = HttpClient.newHttpClient()
val request = HttpRequest.newBuilder()
.uri(URI.create("https://www.cheapshark.com/api/1.0/games?id=$id"))
.build()
val response = client
.send(request, BodyHandlers.ofString())
val json = response.body()
val gson = Gson()
var meuInfoJogo: InfoJogo = InfoJogo(InfoApiShark("", ""))
val resultadoMeuInfoJogo = runCatching {
meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)
}
resultadoMeuInfoJogo.onFailure {
println("Retorno Inválido. Tente outro id.")
}
resultadoMeuInfoJogo.onSuccess {
println("Meu infojogo criado com sucesso!")
}
return meuInfoJogo
}
na main:
var meuJogo: Jogo? = null
val buscaApi = ConsumoApi();
val informacaoJogo = buscaApi.buscajogo(busca)
// println(informacaoJogo)
if(informacaoJogo.info.title != "" && informacaoJogo.info.thumb != "") {
// println("Aqui conseguiremos criar o jogo")
meuJogo = Jogo(
informacaoJogo.info.title,
informacaoJogo.info.thumb
)
println("Deseja inserir uma descrição personalizada? S/N")
val opcao = leitura.nextLine()
if (opcao.equals("s",true)) {
println("Insira a descrição personalizada para o jogo:")
val descricao = leitura.nextLine()
println("sua descrição: $descricao")
meuJogo.descricao = descricao
} else {
meuJogo?.descricao = informacaoJogo.info.title
println(meuJogo?.descricao.toString())
}
} else {
println("Jogo não encontrado, tente novamente")
}
está foi a forma como que consegui avançar, espero que ajude e alguém contribua para a melhoria do código.