Browse Source

GenericApiObserverV2

master
Preyea Regmi 6 years ago
parent
commit
849e5bea93
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java
  3. 80
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/GenericApiObserverResponseV2.java
  4. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java
  5. 6
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java
  6. 2
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java
  7. 13
      app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.java

BIN
.idea/caches/build_file_checksums.ser

2
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) @GET(API_URL.GET_REFUND_RELATED_DATA)
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
Observable<RefundRelatedMetaDataResponse> getRefunRelatedData(@Header("Authorization") String token, @Path("username") String userName);
Observable<ResponseBody> getRefunRelatedData(@Header("Authorization") String token, @Path("username") String userName);
@POST(API_URL.PERFORM_REFUND) @POST(API_URL.PERFORM_REFUND)
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")

80
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<T> extends DisposableObserver<ResponseBody> {
private Type type;
protected abstract Type setType();
protected abstract void onSuccess(RefundRelatedMetaDataResponse<T> 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<T> 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() {
}
}

2
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 @Override
public Observable<RefundRelatedMetaDataResponse> getWithdrawRelatedData(String userId, String auth) {
public Observable<ResponseBody> getWithdrawRelatedData(String userId, String auth) {
return HttpClientV2.getInstance().getRefunRelatedData(auth,userId); return HttpClientV2.getInstance().getRefunRelatedData(auth,userId);
} }

6
app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java

@ -13,7 +13,7 @@ public class RefundRelatedMetaDataResponse<T> {
private String msg; private String msg;
@SerializedName("Data") @SerializedName("Data")
@Expose @Expose
private RefundRelatedMetaDataModel data;
private T data;
public String getErrorCode() { public String getErrorCode() {
return errorCode; return errorCode;
@ -31,11 +31,11 @@ public class RefundRelatedMetaDataResponse<T> {
this.msg = msg; this.msg = msg;
} }
public RefundRelatedMetaDataModel getData() {
public T getData() {
return data; return data;
} }
public void setData(RefundRelatedMetaDataModel data) {
public void setData(T data) {
this.data = data; this.data = data;
} }
} }

2
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 interface WithdrawV2GatewayInterface extends PrivilegedGatewayInterface
{ {
Observable<RefundRelatedMetaDataResponse> getWithdrawRelatedData(String userId, String auth);
Observable<ResponseBody> getWithdrawRelatedData(String userId, String auth);
Observable<RefundOperationResponse> performWithdrawMoney(String userName, String amount, String chargeAmount, String userId, String auth); Observable<RefundOperationResponse> performWithdrawMoney(String userName, String amount, String chargeAmount, String userId, String auth);
} }
} }

13
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.Constants;
import com.gmeremit.online.gmeremittance_native.utils.Utils; 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.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.gateway.WithdrawV2Gateway;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundOperationResponse; 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.RefundRelatedMetaDataModel;
import com.gmeremit.online.gmeremittance_native.withdrawV2.model.RefundRelatedMetaDataResponse; 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.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.CompositeDisposable;
@ -103,8 +108,7 @@ public class WithdrawV2Presenter extends BasePresenter implements WithdrawV2Pres
} }
class WithdrawRelatedDataObserver extends GenericApiObserverResponse<RefundRelatedMetaDataResponse> {
class WithdrawRelatedDataObserver extends GenericApiObserverResponseV2<RefundRelatedMetaDataModel> {
@Override @Override
protected void onSuccess(RefundRelatedMetaDataResponse refundRelatedMetaDataResponse) { 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 @Override
public void onFailed(String message) { public void onFailed(String message) {
view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView()); view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, alertType -> view.exitView());

Loading…
Cancel
Save