diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index c901fbc8..725d6d64 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java index 7d58ef1c..d93cd5a0 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java @@ -650,7 +650,7 @@ public interface ApiEndpoints { @GET(API_URL.GET_REFUND_RELATED_DATA) @Headers("Content-Type: application/json") - Observable getRefunRelatedData(@Header("Authorization") String token, @Path("username") String userName); + Observable getRefunRelatedData(@Header("Authorization") String token, @Path("username") String userName); @POST(API_URL.PERFORM_REFUND) @Headers("Content-Type: application/json") diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/GenericApiObserverResponseV2.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/GenericApiObserverResponseV2.java new file mode 100644 index 00000000..89d7609c --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/GenericApiObserverResponseV2.java @@ -0,0 +1,80 @@ +package com.gmeremit.online.gmeremittance_native.utils.https; + + +import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataModel; +import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataResponse; +import com.google.gson.reflect.TypeToken; + +import org.json.JSONObject; + +import java.io.IOException; +import java.lang.reflect.Type; +import java.net.SocketTimeoutException; + +import io.reactivex.observers.DisposableObserver; +import okhttp3.ResponseBody; +import retrofit2.HttpException; + +/** + * Created by Preyea R. Regmi + * Use this wrapper class to abstract application wise network response for rx-retrofit 2.0 and above + */ +public abstract class GenericApiObserverResponseV2 extends DisposableObserver { + + + private Type type; + + protected abstract Type setType(); + + protected abstract void onSuccess(RefundRelatedMetaDataResponse t); + + public abstract void onFailed(String message); + + protected abstract void onConnectionNotEstablished(String message); + + public GenericApiObserverResponseV2() + { + this.type=setType(); + } + + @Override + public void onNext(ResponseBody t) { +// Handle application wise response code here +// String errorMessage = checkIfResponseIsValidOrNot(t); +// if (errorMessage == null) + try { + onSuccess(parseResponseBody(t)); + } + catch (Exception e) { + onError(e); + } +// else +// onFailed(errorMessage); + } + + private RefundRelatedMetaDataResponse parseResponseBody(ResponseBody body) throws IOException{ + return HttpClientV2.getDeserializer().fromJson(body.string(),this.type); + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + if (e instanceof HttpException) { + onFailed(HTTPConstants.getErrorMessageFromCode(((HttpException) e).code())); + } else if (e instanceof SocketTimeoutException) { + onFailed(HTTPConstants.HTTP_RESPONSE_NO_INTERNET); + } else if (e instanceof IOException) { + onConnectionNotEstablished(HTTPConstants.HTTP_RESPONSE_NO_INTERNET); + } else { + onFailed(e.getMessage()); + } + } + + @Override + public void onComplete() { + + } + + +} + diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java index f03f328f..5c17849f 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java @@ -22,7 +22,7 @@ public class WithdrawV2Gateway extends PrivilegedGateway implements WithdrawV2In @Override - public Observable getWithdrawRelatedData(String userId, String auth) { + public Observable getWithdrawRelatedData(String userId, String auth) { return HttpClientV2.getInstance().getRefunRelatedData(auth,userId); } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java index 3aa2ed56..463c61d9 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java @@ -13,7 +13,7 @@ public class RefundRelatedMetaDataResponse { private String msg; @SerializedName("Data") @Expose - private RefundRelatedMetaDataModel data; + private T data; public String getErrorCode() { return errorCode; @@ -31,11 +31,11 @@ public class RefundRelatedMetaDataResponse { this.msg = msg; } - public RefundRelatedMetaDataModel getData() { + public T getData() { return data; } - public void setData(RefundRelatedMetaDataModel data) { + public void setData(T data) { this.data = data; } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java index 2a3ecaab..69daaade 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java @@ -18,7 +18,7 @@ public interface WithdrawV2InteractorInterface extends BaseInteractorInterface { interface WithdrawV2GatewayInterface extends PrivilegedGatewayInterface { - Observable getWithdrawRelatedData(String userId, String auth); + Observable getWithdrawRelatedData(String userId, String auth); Observable performWithdrawMoney(String userName, String amount, String chargeAmount, String userId, String auth); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java index b2de507d..5a6e3dfe 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java @@ -5,10 +5,15 @@ import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.utils.Constants; import com.gmeremit.online.gmeremittance_native.utils.Utils; import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse; +import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponseV2; import com.gmeremit.online.gmeremittance_native.withdrawV2.gateway.WithdrawV2Gateway; import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundOperationResponse; import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataModel; import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataResponse; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.ArrayList; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; @@ -103,8 +108,7 @@ public class WithdrawV2Presenter extends BasePresenter implements WithdrawV2Pres } - class WithdrawRelatedDataObserver extends GenericApiObserverResponse { - + class WithdrawRelatedDataObserver extends GenericApiObserverResponseV2 { @Override protected void onSuccess(RefundRelatedMetaDataResponse refundRelatedMetaDataResponse) { @@ -122,6 +126,11 @@ public class WithdrawV2Presenter extends BasePresenter implements WithdrawV2Pres } } + @Override + protected Type setType() { + return TypeToken.getParameterized(RefundRelatedMetaDataResponse.class,RefundRelatedMetaDataModel.class).getType(); + } + @Override public void onFailed(String message) { view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView());