Created
May 16, 2018 05:44
-
-
Save vishalhalani/f4090c3ddcedc2348b248929305bf4d4 to your computer and use it in GitHub Desktop.
Controller to make webcall and handle response
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class TaskController { | |
ApiInterface apiService = null; | |
OnWebAPIResponseListener mRepsonseListener; | |
Context context; | |
public TaskController(OnWebAPIResponseListener mRepsonseListener, Context context) { | |
this.context = context; | |
this.mRepsonseListener = mRepsonseListener; | |
} | |
public void getAllTask(final int request_code, final String empID, String startDate, String endDate) { | |
SharedPreferences sharedpreferences = context.getSharedPreferences(MyPREFERENCES, MODE_PRIVATE); | |
final String token = sharedpreferences.getString(ACCESSTOKEN, ""); | |
apiService = RetrofitClient.createServiceWithAuth(ApiInterface.class, token); | |
String query = Const.ID + "," + Const.pa_startDate + "," + Const.pa_dueDate + "," + Const.pa_taskName + "," + Const.pa_taskStatus + "," + Const.pa_Assigned + "/ID" + "," + Const.pa_Assigned + "/Title" + "," + Const.pa_employee + "/ID" + "," + Const.pa_employee + "/Title"; | |
Call<TaskList> call = apiService.getAllTask(PLANACTUAL, query, Const.getTaskQuery(empID, startDate, endDate)); | |
call.enqueue(new Callback<TaskList>() { | |
@Override | |
public void onResponse(Call<TaskList> call, Response<TaskList> response) { | |
if (response.isSuccessful()) { | |
// Log.w("response => ", new GsonBuilder().setPrettyPrinting().create().toJson(response)); | |
if (response.body().getTaskModelList() != null) { | |
Timber.d("onCallComplete: json Task=->%s", response.body().getTaskModelList().size()); | |
mRepsonseListener.onCallComplete(response.body(), request_code); | |
} | |
} else { | |
APIError apiError = ErrorUtil.parseError(response); | |
mRepsonseListener.onCallError(apiError, request_code); | |
} | |
} | |
@Override | |
public void onFailure(Call<TaskList> call, Throwable t) { | |
// Log error here since request failed | |
Timber.e("%s", t.toString()); | |
mRepsonseListener.onCallFailure(t.getMessage(), request_code); | |
} | |
}); | |
} | |
public void updatePlanActual(final int request_code, UpdateTaskModel model, String recordId) { | |
SharedPreferences sharedpreferences = context.getSharedPreferences(MyPREFERENCES, MODE_PRIVATE); | |
final String token = sharedpreferences.getString(ACCESSTOKEN, ""); | |
apiService = RetrofitClient.createServiceWithAuth(ApiInterface.class, token); | |
Call<ResponseBody> call = apiService.updateTask(PLANACTUAL, Integer.parseInt(recordId), model); | |
call.enqueue(new Callback<ResponseBody>() { | |
@Override | |
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { | |
if (response.isSuccessful()) { | |
if (response.code() == 204 || response.code() == 205) { | |
Timber.i("onCallComplete: update report successfully"); | |
mRepsonseListener.onCallComplete(UPDATED, request_code); | |
} | |
} else { | |
APIError apiError = ErrorUtil.parseError(response); | |
// if(apiError.getErrorCode() == 401) | |
// { | |
// getRefreshAccessToken(request_code); | |
// } | |
mRepsonseListener.onCallError(apiError, request_code); | |
} | |
} | |
@Override | |
public void onFailure(Call<ResponseBody> call, Throwable t) { | |
// Log error here since request failed | |
Timber.e("%s", t.toString()); | |
mRepsonseListener.onCallFailure(t.getMessage(), request_code); | |
} | |
}); | |
} | |
public void addTask(final int request_code, AddTaskModel model) { | |
SharedPreferences sharedpreferences = context.getSharedPreferences(MyPREFERENCES, MODE_PRIVATE); | |
final String token = sharedpreferences.getString(ACCESSTOKEN, ""); | |
apiService = RetrofitClient.createServiceWithAuth(ApiInterface.class, token); | |
Call<TaskModel> call = apiService.addTask(PLANACTUAL, model); | |
// if (isAdmin) { | |
// call = apiService.addTask(PLANACTUAL,Integer.parseInt(taskmap.get(Const.pa_employee+"Id")),Integer.parseInt(taskmap.get(Const.pa_Assigned+"Id")), taskmap); | |
// | |
// } else { | |
// call = apiService.addTask(PLANACTUAL,Integer.parseInt(taskmap.get(Const.pa_employee+"Id")), taskmap); | |
// } | |
call.enqueue(new Callback<TaskModel>() { | |
@Override | |
public void onResponse(Call<TaskModel> call, Response<TaskModel> response) { | |
if (response.isSuccessful()) { | |
Timber.i("onCallComplete: added report ID=->%s", response.body().getID()); | |
mRepsonseListener.onCallComplete(response.body(), request_code); | |
} else { | |
APIError apiError = ErrorUtil.parseError(response); | |
// if(apiError.getErrorCode() == 401) | |
// { | |
// getRefreshAccessToken(request_code); | |
// } | |
mRepsonseListener.onCallError(apiError, request_code); | |
} | |
} | |
@Override | |
public void onFailure(Call<TaskModel> call, Throwable t) { | |
// Log error here since request failed | |
Timber.e("%s", t.toString()); | |
mRepsonseListener.onCallFailure(t.getMessage(), request_code); | |
} | |
}); | |
} | |
public void getActualTask(final int request_code, final String empID, String startDate, String endDate) { | |
SharedPreferences sharedpreferences = context.getSharedPreferences(MyPREFERENCES, MODE_PRIVATE); | |
final String token = sharedpreferences.getString(ACCESSTOKEN, ""); | |
apiService = RetrofitClient.createServiceWithAuth(ApiInterface.class, token); | |
String query = Const.ID + "," + Const.pa_startDate + "," + Const.pa_dueDate + "," + Const.pa_taskName + "," + Const.pa_taskStatus + "," + Const.pa_Assigned + "/ID" + "," + Const.pa_Assigned + "/Title" + "," + Const.pa_employee + "/ID" + "," + Const.pa_employee + "/Title"; | |
Call<TaskList> call = apiService.getAllTask(PLANACTUAL, query, Const.getActualTaskQuery(empID, startDate, endDate)); | |
call.enqueue(new Callback<TaskList>() { | |
@Override | |
public void onResponse(Call<TaskList> call, Response<TaskList> response) { | |
if (response.isSuccessful()) { | |
// Log.w("response => ", new GsonBuilder().setPrettyPrinting().create().toJson(response)); | |
if (response.body().getTaskModelList() != null) { | |
Timber.i("onCallComplete: json Task=->%s", response.body().getTaskModelList().size()); | |
mRepsonseListener.onCallComplete(response.body(), request_code); | |
} | |
} else { | |
APIError apiError = ErrorUtil.parseError(response); | |
mRepsonseListener.onCallError(apiError, request_code); | |
} | |
} | |
@Override | |
public void onFailure(Call<TaskList> call, Throwable t) { | |
// Log error here since request failed | |
Timber.e("%s", t.toString()); | |
mRepsonseListener.onCallFailure(t.getMessage(), request_code); | |
} | |
}); | |
} | |
public void getRefreshAccessToken(final int request_code) { | |
apiService = RetrofitClient.createService(ApiInterface.class); | |
Map<String, String> credMap = Const.getCredentialMap(); | |
Call<AccessTokenModel> call = apiService.getAccessToken(credMap); | |
call.enqueue(new Callback<AccessTokenModel>() { | |
@Override | |
public void onResponse(Call<AccessTokenModel> call, Response<AccessTokenModel> response) { | |
if (response.isSuccessful()) { | |
SharedPreferences pref = context.getSharedPreferences(MyPREFERENCES, MODE_PRIVATE); | |
SharedPreferences.Editor editor = pref.edit(); | |
if (response.body() != null) { | |
AccessTokenModel model = ((AccessTokenModel) response.body()); | |
editor.putString(ACCESSTOKEN, model.getAccessToken()).apply(); | |
} | |
mRepsonseListener.OnTokenRefresh(true, request_code); | |
} else { | |
Timber.e("onResponse Refresh token: error body=>%s", response.errorBody()); | |
APIError apiError = ErrorUtil.parseError(response); | |
mRepsonseListener.onCallError(apiError, request_code); | |
} | |
} | |
@Override | |
public void onFailure(Call<AccessTokenModel> call, Throwable t) { | |
// Log error here since request failed | |
Timber.e("%s", t.toString()); | |
mRepsonseListener.onCallFailure(t.getMessage(), request_code); | |
} | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment