Как можно сериализовать arrayylist с помощью Moshi в классе данных - PullRequest
0 голосов
/ 08 мая 2020

Мне нужно использовать эти службы с сопрограммами

[{
    "id": 646442,
    "title": "Healthy Black Forest Baked Oatmeal"
},
{
    "id": 637766,
    "title": "Cherry Lime Mojito"
},]

И у меня есть этот класс для служб вызовов

class RemoteRepository @Inject constructor(private val serviceGenerator: ServiceGenerator) : Source {

override suspend fun requestRecipes(): Resource<RecipesModel> {
    val recipeService = serviceGenerator.createService(RecipesService::class.java)
    return when (val response = processCall(recipeService::fetchRecipes)) {
        is RecipesModel -> {
            Resource.Success(data = response)
        }
        else -> {
            Resource.DataError(errorCode = response as Int)
        }
    }
}

private suspend fun processCall(responseCall: suspend () -> Response<*>): Any? {
    if (!isConnected(App.context)) {
        return NO_INTERNET_CONNECTION
    }
    return try {
        val response = responseCall.invoke()
        val responseCode = response.code()
        if (response.isSuccessful) {
            response.body()
        } else {
            responseCode
        }
    } catch (e: IOException) {
        NETWORK_ERROR
    }
}

}

У меня есть этот интерфейс с Retrofit

interface RecipesService {
@GET("recipes")
suspend fun fetchRecipes(): Response<RecipesModel>

}

и у меня есть эта модель

data class RecipesModel(
    val RecipesItems: List<RecipeItem> = listOf()
)

Всегда эти строки

    return when (val response = processCall(recipeService::fetchRecipes)) {
        is RecipesModel -> {
            Resource.Success(data = response)
        }
        else -> {
            Resource.DataError(errorCode = response as Int)
        }
    }

ответить Ошибка

Как я могу проверить, что response.body совпадает с классом данных?

...