Skip to content

Instantly share code, notes, and snippets.

View silviorp's full-sized avatar

Silvio Pereira silviorp

  • will bank
  • Ribeirão Preto
View GitHub Profile
@silviorp
silviorp / ApiExt.kt
Created August 3, 2024 22:01 — forked from iamhariomsharma/ApiExt.kt
Retrofit Error & Response Handling Utility function
suspend fun <T : Any> executeApi(call: suspend () -> Response<T>): DataResult<T, DataError.Network> {
return try {
val response = call.invoke()
val body = response.body()
val errorBody = response.errorBody()
if (response.isSuccessful && body != null) {
DataResult.Success(body)
} else if (errorBody != null) {
val gson = Gson()
val errorResponse = gson.fromJson(String(errorBody.bytes()), ErrorResponse::class.java)