Advertisement
rama_astadipati

api handler

Feb 14th, 2019
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. package net.ramastudio.jwtez.utils;
  2.  
  3. import android.content.Context;
  4. import android.util.Log;
  5. import android.widget.Toast;
  6.  
  7. import com.google.gson.Gson;
  8. import com.google.gson.reflect.TypeToken;
  9.  
  10. import org.json.JSONException;
  11. import org.json.JSONObject;
  12.  
  13. import java.io.IOException;
  14.  
  15. import okhttp3.ResponseBody;
  16. import retrofit2.Call;
  17. import retrofit2.Callback;
  18. import retrofit2.Response;
  19.  
  20. public abstract class ApiHandler implements Callback<ResponseBody> {
  21.  
  22.  
  23. public abstract void onSuccess(String data);
  24.  
  25.  
  26. public abstract void onComplete(boolean error, String msg);
  27.  
  28. // handle data dari server
  29. @Override
  30. public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
  31. if(response.isSuccessful()){
  32. String resp = null;
  33. try {
  34.  
  35. resp = response.body().string();
  36. Log.i("REQ_NOT",resp);
  37.  
  38. int index = resp.indexOf("{\"error\"");
  39.  
  40. JSONObject obj = new JSONObject(resp.substring(index));
  41.  
  42. boolean error = obj.getBoolean("error");
  43.  
  44. onComplete(error, obj.getString("msg"));
  45. if(!error){
  46.  
  47.  
  48. String data = obj.getString("data");
  49. onSuccess(data);
  50. }
  51. } catch (IOException e) {
  52.  
  53. e.printStackTrace();
  54. onComplete(true, "Gagal membaca data");
  55. } catch (JSONException e) {
  56.  
  57. e.printStackTrace();
  58. onComplete(true, "Gagal parsing data");
  59. }
  60. } else {
  61. String err = "";
  62. try {
  63. err = response.errorBody().string();
  64. } catch (IOException e) {
  65. e.printStackTrace();
  66. }
  67. onComplete(true, "Request gagal");
  68. Log.e("REQ_NOT", err);
  69. }
  70. }
  71.  
  72. @Override
  73. public void onFailure(Call<ResponseBody> call, Throwable t) {
  74.  
  75. onComplete(true, t.getMessage());
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement