Skip to content

Instantly share code, notes, and snippets.

@shibbirweb
Last active October 25, 2022 07:05
Show Gist options
  • Select an option

  • Save shibbirweb/b57c8a0cd09c5cef4828a74792e337c3 to your computer and use it in GitHub Desktop.

Select an option

Save shibbirweb/b57c8a0cd09c5cef4828a74792e337c3 to your computer and use it in GitHub Desktop.
Android: Kotlin Sealed Resource Class For API Request
package com.data.helpers
sealed class Resource<T, Y>(
val data: T? = null,
val error: Errors<Y>? = null
) {
class Success<T, Y>(data: T) : Resource<T, Y>(data)
class Error<T, Y>(error: Errors<Y>) : Resource<T, Y>(error = error)
}
sealed class Errors<K>(
val validationError: K? = null,
val message: String? = null,
val code: Int? = null
) {
class ValidationError<K>(validationError: K, code: Int = 422) :
Errors<K>(validationError = validationError, code = code)
class ServerError<K>(message: String, code: Int = 500) :
Errors<K>(message = message, code = code)
// more errors as necessary
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment