Preyea Regmi
6 years ago
7 changed files with 97 additions and 8 deletions
-
BIN.idea/caches/build_file_checksums.ser
-
2app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/ApiEndpoints.java
-
80app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/GenericApiObserverResponseV2.java
-
2app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/gateway/WithdrawV2Gateway.java
-
6app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/model/RefundRelatedMetaDataResponse.java
-
2app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2InteractorInterface.java
-
13app/src/main/java/com/gmeremit/online/gmeremittance_native/withdrawV2/presenter/WithdrawV2Presenter.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() { |
|||
|
|||
} |
|||
|
|||
|
|||
} |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue