Guest User

Untitled

a guest
Jan 23rd, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. open class BaseRepository{
  2.  
  3. suspend fun <T : Any> safeApiCall(call: suspend () -> Response<T>, errorMessage: String): T? {
  4.  
  5. val result : Result<T> = safeApiResult(call,errorMessage)
  6. var data : T? = null
  7.  
  8. when(result) {
  9. is Result.Success ->
  10. data = result.data
  11. is Result.Error -> {
  12. Log.d("1.DataRepository", "$errorMessage & Exception - ${result.exception}")
  13. }
  14. }
  15.  
  16.  
  17. return data
  18.  
  19. }
  20.  
  21. private suspend fun <T: Any> safeApiResult(call: suspend ()-> Response<T>, errorMessage: String) : Result<T>{
  22. val response = call.invoke()
  23. if(response.isSuccessful) return Result.Success(response.body()!!)
  24.  
  25. return Result.Error(IOException("Error Occurred during getting safe Api result, Custom ERROR - $errorMessage"))
  26. }
  27. }
Add Comment
Please, Sign In to add comment