Depois de ter refatorado o codigo conforme a videoaula, esta dando esse erro apos digitar um codigo de jogo que nao existe. O que faço? Segue em anexo arquivos Main.kt e ConsumoApi.kt
Main.kt
package br.com.alura.alugames.principal
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 um codigo de jogo para buscar:")
val busca = leitura.nextLine()
val buscaApi = ConsumoApi()
val informacaoJogo = buscaApi.buscaJogo(busca)
var meuJogo: Jogo? = null
val resultado = runCatching {
meuJogo = Jogo(
informacaoJogo.info.title,
informacaoJogo.info.thumb
)
}
resultado.onFailure {
println("Jogo inexistente. Tente outro id.")
}
resultado.onSuccess {
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 descricaoPersonalizada = leitura.nextLine()
meuJogo?.descricao = descricaoPersonalizada
println("sua descrição: $descricaoPersonalizada")
} else {
meuJogo?.descricao = meuJogo?.titulo
println("sem descrição")
}
println(meuJogo)
}
resultado.onSuccess {
println("Busca finalizada com sucesso!")
}
}
ConsumoApi.kt
package br.com.alura.alugames.servicos
import br.com.alura.alugames.modelo.InfoJogo
import com.google.gson.Gson
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse.BodyHandlers
class ConsumoApi {
fun buscaJogo(id: String): InfoJogo {
val endereco = "https://www.cheapshark.com/api/1.0/games?id=$id"
val client: HttpClient = HttpClient.newHttpClient()
val request = HttpRequest.newBuilder()
.uri(URI.create(endereco))
.build()
val response = client
.send(request, BodyHandlers.ofString())
val json = response.body()
val gson = Gson()
val meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)
return meuInfoJogo
}
}