From fa0072d5ee75691d17f24e0ddf9ffb0f416790ff Mon Sep 17 00:00:00 2001 From: preyearegmi Date: Mon, 27 Aug 2018 14:28:38 +0900 Subject: [PATCH] Add recipient api call successful --- .../base/PrivilegedGateway.java | 4 + .../base/PrivilegedGatewayInterface.java | 2 + .../customwidgets/CustomAlertDialog.java | 7 +- .../gateway/RecipientV2Gateway.java | 21 ++ .../model/AddRecipientApiModel.java | 227 ++++++++++++++++++ .../model/AddRecipientApiResponse.java | 52 ++++ .../model/DistrictDetailModel.java | 5 + .../model/ProvinceDetailModel.java | 7 + .../model/RelationDetailModel.java | 5 + .../model/TransferDetailModel.java | 5 + .../RecipientV2InteractorInterface.java | 16 ++ .../presenter/RecipientV2Presenter.java | 73 ++++-- .../utils/https/API_URL.java | 1 + .../utils/https/ApiEndpoints.java | 6 + 14 files changed, 412 insertions(+), 19 deletions(-) create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiModel.java create mode 100644 app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiResponse.java diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGateway.java index 2c3829cc..86215d0f 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGateway.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGateway.java @@ -3,6 +3,10 @@ package com.gmeremit.online.gmeremittance_native.base; import com.gmeremit.online.gmeremittance_native.GmeApplication; public abstract class PrivilegedGateway implements PrivilegedGatewayInterface { + @Override + public String getUserID() { + return GmeApplication.getStorage().getString("USER_ID",""); + } @Override public String getAuth(){ diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGatewayInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGatewayInterface.java index e172ea86..5ddce37c 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGatewayInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/PrivilegedGatewayInterface.java @@ -5,4 +5,6 @@ import com.gmeremit.online.gmeremittance_native.GmeApplication; public interface PrivilegedGatewayInterface extends BaseGatewayInterface { String getAuth(); + + String getUserID(); } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/CustomAlertDialog.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/CustomAlertDialog.java index 5eaf62f4..b39e702c 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/CustomAlertDialog.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/CustomAlertDialog.java @@ -54,6 +54,11 @@ public class CustomAlertDialog extends DialogFragment { case NO_INTERNET: imgStatusImgView.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.no_internet)); dialogTitleTxt.setText("Connection Failed"); + break; + + case SUCCESS: + imgStatusImgView.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.alert)); + dialogTitleTxt.setText("Success"); break; default: @@ -112,7 +117,7 @@ public class CustomAlertDialog extends DialogFragment { } public enum AlertType { - NO_INTERNET, FAILED, ALERT, BAD_REQUEST + SUCCESS,NO_INTERNET, FAILED, ALERT, BAD_REQUEST } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java index 6850012f..9e397aa9 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/gateway/RecipientV2Gateway.java @@ -1,11 +1,13 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.gateway; import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2InteractorInterface; import com.gmeremit.online.gmeremittance_native.utils.https.HttpClientV2; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; import io.reactivex.Observable; @@ -188,4 +190,23 @@ public class RecipientV2Gateway extends PrivilegedGateway implements RecipientV2 // return HttpClientV2.getInstance().getRecipientRelatedDataV2(auth); } + + @Override + public Observable addRecipientAndSendToServer(String auth, String userId, String firstname, String middleName, String lastName, String country, String state, String district, String address, String relation, String mobileNo, String email, String transferReason) { + JsonObject jsonObject=new JsonObject(); + jsonObject.addProperty("FirstName",firstname); + jsonObject.addProperty("MiddleName",middleName); + jsonObject.addProperty("LastName",lastName); + jsonObject.addProperty("Country",country); + jsonObject.addProperty("State",state); + jsonObject.addProperty("District",district); + jsonObject.addProperty("Address",address); + jsonObject.addProperty("Relation",relation); + jsonObject.addProperty("MobileNo",mobileNo); + jsonObject.addProperty("Email",email); + jsonObject.addProperty("TransferReason",transferReason); + + return HttpClientV2.getInstance().addRecipientV2(auth,userId,jsonObject); + } + } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiModel.java new file mode 100644 index 00000000..48a4150c --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiModel.java @@ -0,0 +1,227 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class AddRecipientApiModel { + @SerializedName("mobileNumber") + @Expose + private String mobileNumber; + @SerializedName("district") + @Expose + private String district; + @SerializedName("reasonId") + @Expose + private String reasonId; + @SerializedName("relation") + @Expose + private String relation; + @SerializedName("country") + @Expose + private String country; + @SerializedName("dpUrl") + @Expose + private String dpUrl; + @SerializedName("city") + @Expose + private String city; + @SerializedName("relationId") + @Expose + private String relationId; + @SerializedName("countryId") + @Expose + private String countryId; + @SerializedName("state") + @Expose + private String state; + @SerializedName("email") + @Expose + private String email; + @SerializedName("middleName") + @Expose + private String middleName; + @SerializedName("firstName") + @Expose + private String firstName; + @SerializedName("recipientId") + @Expose + private String recipientId; + @SerializedName("reason") + @Expose + private String reason; + @SerializedName("districtId") + @Expose + private String districtId; + @SerializedName("stateId") + @Expose + private String stateId; + @SerializedName("lastName") + @Expose + private String lastName; + @SerializedName("address") + @Expose + private String address; + @SerializedName("userId") + @Expose + private String userId; + + public String getMobileNumber() { + return mobileNumber; + } + + public void setMobileNumber(String mobileNumber) { + this.mobileNumber = mobileNumber; + } + + public String getDistrict() { + return district; + } + + public void setDistrict(String district) { + this.district = district; + } + + public String getReasonId() { + return reasonId; + } + + public void setReasonId(String reasonId) { + this.reasonId = reasonId; + } + + public String getRelation() { + return relation; + } + + public void setRelation(String relation) { + this.relation = relation; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String getDpUrl() { + return dpUrl; + } + + public void setDpUrl(String dpUrl) { + this.dpUrl = dpUrl; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getRelationId() { + return relationId; + } + + public void setRelationId(String relationId) { + this.relationId = relationId; + } + + public String getCountryId() { + return countryId; + } + + public void setCountryId(String countryId) { + this.countryId = countryId; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getMiddleName() { + return middleName; + } + + public void setMiddleName(String middleName) { + this.middleName = middleName; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getRecipientId() { + return recipientId; + } + + public void setRecipientId(String recipientId) { + this.recipientId = recipientId; + } + + public String getReason() { + return reason; + } + + public void setReason(String reason) { + this.reason = reason; + } + + public String getDistrictId() { + return districtId; + } + + public void setDistrictId(String districtId) { + this.districtId = districtId; + } + + public String getStateId() { + return stateId; + } + + public void setStateId(String stateId) { + this.stateId = stateId; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiResponse.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiResponse.java new file mode 100644 index 00000000..df931dd2 --- /dev/null +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/AddRecipientApiResponse.java @@ -0,0 +1,52 @@ +package com.gmeremit.online.gmeremittance_native.recipientV2.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class AddRecipientApiResponse { + + @SerializedName("ErrorCode") + @Expose + private String errorCode; + @SerializedName("Msg") + @Expose + private String msg; + @SerializedName("Id") + @Expose + private String id; + @SerializedName("Data") + @Expose + private AddRecipientApiModel data; + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public AddRecipientApiModel getData() { + return data; + } + + public void setData(AddRecipientApiModel data) { + this.data = data; + } +} diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java index 09f374f7..7271b859 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/DistrictDetailModel.java @@ -12,6 +12,11 @@ public class DistrictDetailModel { @Expose private String text; + public DistrictDetailModel() { + this.id=""; + this.text=""; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java index 8f2d68e7..3c547f2c 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/ProvinceDetailModel.java @@ -3,6 +3,7 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.model; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; +import java.util.ArrayList; import java.util.List; public class ProvinceDetailModel { @@ -17,6 +18,12 @@ public class ProvinceDetailModel { @Expose private List district = null; + public ProvinceDetailModel() { + this.id=""; + this.text=""; + this.district=new ArrayList<>(); + } + public String getId() { return id; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java index 9748b7d8..58bab12c 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/RelationDetailModel.java @@ -12,6 +12,11 @@ public class RelationDetailModel { @Expose private String text; + public RelationDetailModel() { + this.id=""; + this.text=""; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java index 502d64ae..5afe1354 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/model/TransferDetailModel.java @@ -12,6 +12,11 @@ public class TransferDetailModel { @Expose private String text; + public TransferDetailModel() { + this.id=""; + this.text=""; + } + public String getId() { return id; } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java index 5fa0704a..29d8cd0c 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2InteractorInterface.java @@ -2,6 +2,7 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.presenter; import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface; import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; import io.reactivex.Observable; @@ -12,5 +13,20 @@ public interface RecipientV2InteractorInterface extends BaseInteractorInterface interface RecipientV2GatewayInterface extends PrivilegedGatewayInterface { Observable getRelatedDataFromServer(String auth); + + Observable addRecipientAndSendToServer(String auth, + String userId, + String firstname, + String middleName, + String lastName, + String country, + String state, + String district, + String address, + String relation, + String mobileNo, + String email, + String transferReason + ); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java index 565d3642..2ab34fcc 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV2/presenter/RecipientV2Presenter.java @@ -1,23 +1,20 @@ package com.gmeremit.online.gmeremittance_native.recipientV2.presenter; -import com.gmeremit.online.gmeremittance_native.agentsV2.gateway.AgentListV2Gateway; import com.gmeremit.online.gmeremittance_native.base.BasePresenter; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.recipientV2.gateway.RecipientV2Gateway; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.CountryDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.DistrictDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.ProvinceDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RelationDetailModel; import com.gmeremit.online.gmeremittance_native.recipientV2.model.TransferDetailModel; -import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2InteractorInterface; -import com.gmeremit.online.gmeremittance_native.recipientV2.presenter.RecipientV2PresenterInterface; import com.gmeremit.online.gmeremittance_native.utils.Constants; import com.gmeremit.online.gmeremittance_native.utils.https.GenericApiObserverResponse; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; public class RecipientV2Presenter extends BasePresenter implements RecipientV2PresenterInterface, RecipientV2InteractorInterface { @@ -50,15 +47,31 @@ public class RecipientV2Presenter extends BasePresenter implements RecipientV2Pr public void addRecipient(String firstName, String middleName, String lastName, CountryDetailModel selectedCountry, ProvinceDetailModel selectedProvince, DistrictDetailModel selectedDistrict, String address, RelationDetailModel selectedRelation, String mobileNo, String email, TransferDetailModel selectedTransfer) { - if(checkStringNotEmpty(firstName)&& - checkStringNotEmpty(lastName)&& - checkStringNotEmpty(address)&& - checkStringNotEmpty(mobileNo)&& - validateLocation(selectedCountry,selectedProvince,selectedDistrict)) - { - - } - else + if (checkStringNotEmpty(firstName) && + checkStringNotEmpty(lastName) && + checkStringNotEmpty(address) && + checkStringNotEmpty(mobileNo) && + validateLocation(selectedCountry, selectedProvince, selectedDistrict)) { + + this.compositeDisposable.add( this.gateway.addRecipientAndSendToServer(gateway.getAuth(), + gateway.getUserID(), + firstName, middleName, lastName, + selectedCountry.getId(), + (selectedProvince)==null?"":selectedProvince.getId(), + (selectedDistrict)==null?"":selectedDistrict.getId(), + address, selectedRelation.getId(), + mobileNo, + email, + selectedTransfer.getId() + ) + .doOnSubscribe(disposable -> view.showProgressBar(true, "Adding Recipient...")) + .doFinally(() -> view.showProgressBar(false, "")) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeWith(new AddRecipientObserver()) + ); + + } else this.view.showToastMessage("Please fill up required details."); } @@ -66,11 +79,7 @@ public class RecipientV2Presenter extends BasePresenter implements RecipientV2Pr private boolean validateLocation(CountryDetailModel country, ProvinceDetailModel province, DistrictDetailModel district) { if (country != null) { if (country.getIsProvienceReq().equalsIgnoreCase(Constants.TRUE_STRING)) { - if (province == null) { -// this.view.showToastMessage("Select a province first."); - return false; - } else if (district == null) { -// this.view.showToastMessage("Select a district first."); + if (province == null||district==null) { return false; } else return true; @@ -111,4 +120,32 @@ public class RecipientV2Presenter extends BasePresenter implements RecipientV2Pr } } + private class AddRecipientObserver extends GenericApiObserverResponse + { + + @Override + protected void onSuccess(AddRecipientApiResponse addRecipientApiResponse) { + if(addRecipientApiResponse.getErrorCode().equalsIgnoreCase(Constants.TRUE_STRING)) + { + view.showToastMessage(addRecipientApiResponse.getMsg()); + view.exitView(); + } + else + { + view.showPopUpMessage(addRecipientApiResponse.getMsg(), CustomAlertDialog.AlertType.FAILED,null); + } + } + + @Override + public void onFailed(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.FAILED, null); + } + + @Override + protected void onConnectionNotEstablished(String message) { + view.showPopUpMessage(message, CustomAlertDialog.AlertType.NO_INTERNET, null); + + } + } + } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java index 8033dddb..f10e623d 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/https/API_URL.java @@ -122,5 +122,6 @@ public class API_URL { public static final String EXCHANGE_RATE_SERVICE="mobile/countriesServices"; public static final String CALCULATE_EXCHANGE_RATE = "mobile/calculateDefExRate"; public static final String GET_ALL_RECIPIENT_INFO = "mobile/loadform/receiver"; + public static final String ADD_RECIPIENT_V2 = "mobile/receiver/save/"; } 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 c20ebfed..ebb8b318 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 @@ -33,6 +33,7 @@ import com.gmeremit.online.gmeremittance_native.recipient.model.request_data.Dis import com.gmeremit.online.gmeremittance_native.recipient.model.request_data.Relation; import com.gmeremit.online.gmeremittance_native.recipient.model.request_data.States; import com.gmeremit.online.gmeremittance_native.recipient.model.response_data.AllReceipientResponseData; +import com.gmeremit.online.gmeremittance_native.recipientV2.model.AddRecipientApiResponse; import com.gmeremit.online.gmeremittance_native.recipientV2.model.RecipientRelatedDataApiResponse; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.ResendCodeBodyRequest; import com.gmeremit.online.gmeremittance_native.reset_password.model.data.ResetPasswordRequestBody; @@ -533,4 +534,9 @@ public interface ApiEndpoints { @Headers("Content-Type: application/json") Observable getRecipientRelatedDataV2(@Header("Authorization") String token); + + @POST(API_URL.ADD_RECIPIENT_V2+"{uId}") + @Headers("Content-Type: application/json") + Observable addRecipientV2(@Header("Authorization") String token, @Path("uId") String userName, @Body() JsonObject jsonObject); + }