Showing
4 changed files
with
447 additions
and
334 deletions
... | @@ -97,6 +97,7 @@ public class Coupon implements Parcelable, Serializable { | ... | @@ -97,6 +97,7 @@ public class Coupon implements Parcelable, Serializable { |
97 | private String terms = ""; | 97 | private String terms = ""; |
98 | private Couponset couponsetDetails = new Couponset(true); | 98 | private Couponset couponsetDetails = new Couponset(true); |
99 | private Merchant merchantDetails = new Merchant(true); | 99 | private Merchant merchantDetails = new Merchant(true); |
100 | + private RedeemMerchantDetails redeemDetails = new RedeemMerchantDetails(); | ||
100 | 101 | ||
101 | public Coupon() { | 102 | public Coupon() { |
102 | this.barcode = ""; | 103 | this.barcode = ""; |
... | @@ -121,6 +122,7 @@ public class Coupon implements Parcelable, Serializable { | ... | @@ -121,6 +122,7 @@ public class Coupon implements Parcelable, Serializable { |
121 | this.final_price = 0.0d; | 122 | this.final_price = 0.0d; |
122 | this.short_description = ""; | 123 | this.short_description = ""; |
123 | this.terms = ""; | 124 | this.terms = ""; |
125 | + this.redeemDetails = new RedeemMerchantDetails(); | ||
124 | } | 126 | } |
125 | 127 | ||
126 | public Coupon(boolean isUniversal) { | 128 | public Coupon(boolean isUniversal) { |
... | @@ -135,6 +137,7 @@ public class Coupon implements Parcelable, Serializable { | ... | @@ -135,6 +137,7 @@ public class Coupon implements Parcelable, Serializable { |
135 | this.redeemDate = new Date(); | 137 | this.redeemDate = new Date(); |
136 | this.couponsetDetails = new Couponset(isUniversal); | 138 | this.couponsetDetails = new Couponset(isUniversal); |
137 | this.merchantDetails = new Merchant(isUniversal); | 139 | this.merchantDetails = new Merchant(isUniversal); |
140 | + this.redeemDetails = new RedeemMerchantDetails(); | ||
138 | } | 141 | } |
139 | 142 | ||
140 | /** | 143 | /** |
... | @@ -189,6 +192,10 @@ public class Coupon implements Parcelable, Serializable { | ... | @@ -189,6 +192,10 @@ public class Coupon implements Parcelable, Serializable { |
189 | this.final_price = json.optDouble(FINAL_PRICE); | 192 | this.final_price = json.optDouble(FINAL_PRICE); |
190 | this.short_description = json.optString(SHORT_DESCRIPTION); | 193 | this.short_description = json.optString(SHORT_DESCRIPTION); |
191 | this.terms = json.optString(TERMS); | 194 | this.terms = json.optString(TERMS); |
195 | + JSONObject tempRedeemDetails = json.optJSONObject("redeemed_merchant_details"); | ||
196 | + if (tempRedeemDetails != null) { | ||
197 | + this.redeemDetails = new RedeemMerchantDetails(tempRedeemDetails); | ||
198 | + } | ||
192 | } | 199 | } |
193 | } | 200 | } |
194 | 201 | ||
... | @@ -224,6 +231,10 @@ public class Coupon implements Parcelable, Serializable { | ... | @@ -224,6 +231,10 @@ public class Coupon implements Parcelable, Serializable { |
224 | if (tempMerchantDetails != null) { | 231 | if (tempMerchantDetails != null) { |
225 | this.merchantDetails = new Merchant(tempMerchantDetails, isUniversal); | 232 | this.merchantDetails = new Merchant(tempMerchantDetails, isUniversal); |
226 | } | 233 | } |
234 | + JSONObject tempRedeemDetails = json.optJSONObject("redeemed_merchant_details"); | ||
235 | + if (tempRedeemDetails != null) { | ||
236 | + this.redeemDetails = new RedeemMerchantDetails(tempRedeemDetails); | ||
237 | + } | ||
227 | 238 | ||
228 | // this.category = json.optString(CATEGORY); | 239 | // this.category = json.optString(CATEGORY); |
229 | // this.created = json.optString(CREATED); | 240 | // this.created = json.optString(CREATED); |
... | @@ -240,6 +251,75 @@ public class Coupon implements Parcelable, Serializable { | ... | @@ -240,6 +251,75 @@ public class Coupon implements Parcelable, Serializable { |
240 | } | 251 | } |
241 | } | 252 | } |
242 | 253 | ||
254 | + public class RedeemMerchantDetails { | ||
255 | + private static final String IMG_PREVIEW = "img_preview"; | ||
256 | + private static final String NAME = "name"; | ||
257 | + private static final String UUID = "uuid"; | ||
258 | + private static final String REDEEMED_DATE = "redeemed_date"; | ||
259 | + | ||
260 | + | ||
261 | + private String imgPreview = ""; | ||
262 | + private String name = ""; | ||
263 | + private String uuid = ""; | ||
264 | + private String redeemedDate = ""; | ||
265 | + | ||
266 | + public RedeemMerchantDetails() { | ||
267 | + this.imgPreview = ""; | ||
268 | + this.name = ""; | ||
269 | + this.uuid = ""; | ||
270 | + this.redeemedDate = ""; | ||
271 | + } | ||
272 | + | ||
273 | + public RedeemMerchantDetails(JSONObject json) { | ||
274 | + if (json != null) { | ||
275 | + if (json.optJSONObject(IMG_PREVIEW) != null) { | ||
276 | + this.imgPreview = json.optString(IMG_PREVIEW); | ||
277 | + } | ||
278 | + if (json.optJSONObject(NAME) != null) { | ||
279 | + this.name = json.optString(NAME); | ||
280 | + } | ||
281 | + if (json.optJSONObject(UUID) != null) { | ||
282 | + this.uuid = json.optString(UUID); | ||
283 | + } | ||
284 | + if (json.optJSONObject(REDEEMED_DATE) != null) { | ||
285 | + this.redeemedDate = json.optString(REDEEMED_DATE); | ||
286 | + } | ||
287 | + } | ||
288 | + } | ||
289 | + | ||
290 | + public String getImgPreview() { | ||
291 | + return imgPreview; | ||
292 | + } | ||
293 | + | ||
294 | + public void setImgPreview(String imgPreview) { | ||
295 | + this.imgPreview = imgPreview; | ||
296 | + } | ||
297 | + | ||
298 | + public String getName() { | ||
299 | + return name; | ||
300 | + } | ||
301 | + | ||
302 | + public void setName(String name) { | ||
303 | + this.name = name; | ||
304 | + } | ||
305 | + | ||
306 | + public String getUuid() { | ||
307 | + return uuid; | ||
308 | + } | ||
309 | + | ||
310 | + public void setUuid(String uuid) { | ||
311 | + this.uuid = uuid; | ||
312 | + } | ||
313 | + | ||
314 | + public String getRedeemedDate() { | ||
315 | + return redeemedDate; | ||
316 | + } | ||
317 | + | ||
318 | + public void setRedeemedDate(String redeemedDate) { | ||
319 | + this.redeemedDate = redeemedDate; | ||
320 | + } | ||
321 | + } | ||
322 | + | ||
243 | public Coupon(Parcel source) { | 323 | public Coupon(Parcel source) { |
244 | this.barcode = source.readString(); | 324 | this.barcode = source.readString(); |
245 | this.category = source.readString(); | 325 | this.category = source.readString(); |
... | @@ -544,6 +624,14 @@ public class Coupon implements Parcelable, Serializable { | ... | @@ -544,6 +624,14 @@ public class Coupon implements Parcelable, Serializable { |
544 | this.merchantDetails = merchantDetails; | 624 | this.merchantDetails = merchantDetails; |
545 | } | 625 | } |
546 | 626 | ||
627 | + public RedeemMerchantDetails getRedeemDetails() { | ||
628 | + return redeemDetails; | ||
629 | + } | ||
630 | + | ||
631 | + public void setRedeemDetails(RedeemMerchantDetails redeemDetails) { | ||
632 | + this.redeemDetails = redeemDetails; | ||
633 | + } | ||
634 | + | ||
547 | @Override | 635 | @Override |
548 | public int describeContents() { | 636 | public int describeContents() { |
549 | return 0; | 637 | return 0; | ... | ... |
1 | +/* | ||
2 | + * Copyright 2010-2013 Warply Ltd. All rights reserved. | ||
3 | + * | ||
4 | + * Redistribution and use in source and binary forms, without modification, are | ||
5 | + * permitted provided that the following conditions are met: | ||
6 | + * | ||
7 | + * 1. Redistributions of source code must retain the above copyright notice, | ||
8 | + * this list of conditions and the following disclaimer. | ||
9 | + * | ||
10 | + * 2. Redistributions in binary form must reproduce the above copyright notice, | ||
11 | + * this list of conditions and the following disclaimer in the documentation | ||
12 | + * and/or other materials provided with the distribution. | ||
13 | + * | ||
14 | + * THIS SOFTWARE IS PROVIDED BY THE WARPLY LTD ``AS IS'' AND ANY EXPRESS OR | ||
15 | + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
16 | + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||
17 | + * EVENT SHALL WARPLY LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
19 | + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, | ||
20 | + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
21 | + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
22 | + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | ||
23 | + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | + */ | ||
25 | + | ||
26 | +package ly.warp.sdk.io.models; | ||
27 | + | ||
28 | +import org.json.JSONArray; | ||
29 | +import org.json.JSONException; | ||
30 | +import org.json.JSONObject; | ||
31 | + | ||
32 | +import java.util.ArrayList; | ||
33 | + | ||
34 | +import ly.warp.sdk.utils.WarpUtils; | ||
35 | +import ly.warp.sdk.utils.constants.WarpConstants; | ||
36 | + | ||
37 | +/** | ||
38 | + * Created by Panagiotis Triantafyllou on 20-Jan-25. | ||
39 | + */ | ||
40 | + | ||
41 | +public class MarketPassDetailsModel { | ||
42 | + private static final String BARCODE = "barcode"; | ||
43 | + private static final String SUPERMARKETS = "supermarkets"; | ||
44 | + private static final String TOTAL_DISCOUNT = "total_available_discount"; | ||
45 | + | ||
46 | + private ArrayList<Supermarkets> supermarkets = new ArrayList<Supermarkets>(); | ||
47 | + private String barcode = ""; | ||
48 | + private double totalDiscount = 0.0d; | ||
49 | + | ||
50 | + public MarketPassDetailsModel() { | ||
51 | + this.supermarkets = new ArrayList<Supermarkets>(); | ||
52 | + this.barcode = ""; | ||
53 | + this.totalDiscount = 0.0d; | ||
54 | + } | ||
55 | + | ||
56 | + /** | ||
57 | + * Basic constructor used to create an object from a String, representing a | ||
58 | + * JSON Object | ||
59 | + * | ||
60 | + * @param json The String, representing the JSON Object | ||
61 | + * @throws JSONException Thrown if the String cannot be converted to JSON | ||
62 | + */ | ||
63 | + public MarketPassDetailsModel(String json) throws JSONException { | ||
64 | + this(new JSONObject(json)); | ||
65 | + } | ||
66 | + | ||
67 | + /** | ||
68 | + * Constructor used to create an Object from a given JSON Object | ||
69 | + * | ||
70 | + * @param json JSON Object used to create the Campaign | ||
71 | + */ | ||
72 | + public MarketPassDetailsModel(JSONObject json) { | ||
73 | + if (json != null) { | ||
74 | + if (json.optJSONArray(SUPERMARKETS) != null) { | ||
75 | + JSONArray tempSupermarkets = json.optJSONArray(SUPERMARKETS); | ||
76 | + if (tempSupermarkets != null && tempSupermarkets.length() > 0) { | ||
77 | + for (int i = 0, lim = tempSupermarkets.length(); i < lim; ++i) { | ||
78 | + this.supermarkets.add(new Supermarkets(tempSupermarkets.optJSONObject(i))); | ||
79 | + } | ||
80 | + } | ||
81 | + } | ||
82 | + this.barcode = json.optString(BARCODE); | ||
83 | + this.totalDiscount = json.optDouble(TOTAL_DISCOUNT); | ||
84 | + } | ||
85 | + } | ||
86 | + | ||
87 | + /** | ||
88 | + * Converts the Campaign into a JSON Object | ||
89 | + * | ||
90 | + * @return The JSON Object created from this campaign | ||
91 | + */ | ||
92 | + public JSONObject toJSONObject() { | ||
93 | + JSONObject jObj = new JSONObject(); | ||
94 | + try { | ||
95 | + jObj.putOpt(BARCODE, this.barcode); | ||
96 | + jObj.putOpt(TOTAL_DISCOUNT, this.totalDiscount); | ||
97 | + jObj.putOpt(SUPERMARKETS, this.supermarkets); | ||
98 | + } catch (JSONException e) { | ||
99 | + if (WarpConstants.DEBUG) { | ||
100 | + e.printStackTrace(); | ||
101 | + } | ||
102 | + } | ||
103 | + return jObj; | ||
104 | + } | ||
105 | + | ||
106 | + /** | ||
107 | + * String representation of the Campaign, as a JSON object | ||
108 | + * | ||
109 | + * @return A String representation of JSON object | ||
110 | + */ | ||
111 | + public String toString() { | ||
112 | + if (toJSONObject() != null) | ||
113 | + return toJSONObject().toString(); | ||
114 | + return null; | ||
115 | + } | ||
116 | + | ||
117 | + /** | ||
118 | + * String representation of the Campaign, as a human readable JSON object | ||
119 | + * | ||
120 | + * @return A human readable String representation of JSON object | ||
121 | + */ | ||
122 | + public String toHumanReadableString() { | ||
123 | + String humanReadableString = null; | ||
124 | + try { | ||
125 | + humanReadableString = toJSONObject().toString(2); | ||
126 | + } catch (JSONException e) { | ||
127 | + WarpUtils.warn("Failed converting Campaign JSON object to String", | ||
128 | + e); | ||
129 | + } | ||
130 | + return humanReadableString; | ||
131 | + } | ||
132 | + | ||
133 | + public class Supermarkets { | ||
134 | + private static final String LOGO = "logo"; | ||
135 | + private static final String NAME = "name"; | ||
136 | + private static final String UUID = "uuid"; | ||
137 | + | ||
138 | + | ||
139 | + private String logo = ""; | ||
140 | + private String name = ""; | ||
141 | + private String uuid = ""; | ||
142 | + | ||
143 | + public Supermarkets() { | ||
144 | + this.logo = ""; | ||
145 | + this.name = ""; | ||
146 | + this.uuid = ""; | ||
147 | + } | ||
148 | + | ||
149 | + public Supermarkets(JSONObject json) { | ||
150 | + if (json != null) { | ||
151 | + if (json.optJSONObject(LOGO) != null) { | ||
152 | + this.logo = json.optString(LOGO); | ||
153 | + } | ||
154 | + if (json.optJSONObject(NAME) != null) { | ||
155 | + this.name = json.optString(NAME); | ||
156 | + } | ||
157 | + if (json.optJSONObject(UUID) != null) { | ||
158 | + this.uuid = json.optString(UUID); | ||
159 | + } | ||
160 | + } | ||
161 | + } | ||
162 | + | ||
163 | + public String getLogo() { | ||
164 | + return logo; | ||
165 | + } | ||
166 | + | ||
167 | + public void setLogo(String logo) { | ||
168 | + this.logo = logo; | ||
169 | + } | ||
170 | + | ||
171 | + public String getName() { | ||
172 | + return name; | ||
173 | + } | ||
174 | + | ||
175 | + public void setName(String name) { | ||
176 | + this.name = name; | ||
177 | + } | ||
178 | + | ||
179 | + public String getUuid() { | ||
180 | + return uuid; | ||
181 | + } | ||
182 | + | ||
183 | + public void setUuid(String uuid) { | ||
184 | + this.uuid = uuid; | ||
185 | + } | ||
186 | + } | ||
187 | + | ||
188 | + // ================================================================================ | ||
189 | + // Getters | ||
190 | + // ================================================================================ | ||
191 | + | ||
192 | + | ||
193 | + public ArrayList<Supermarkets> getSupermarkets() { | ||
194 | + return supermarkets; | ||
195 | + } | ||
196 | + | ||
197 | + public void setSupermarkets(ArrayList<Supermarkets> supermarkets) { | ||
198 | + this.supermarkets = supermarkets; | ||
199 | + } | ||
200 | + | ||
201 | + public String getBarcode() { | ||
202 | + return barcode; | ||
203 | + } | ||
204 | + | ||
205 | + public void setBarcode(String barcode) { | ||
206 | + this.barcode = barcode; | ||
207 | + } | ||
208 | + | ||
209 | + public double getTotalDiscount() { | ||
210 | + return totalDiscount; | ||
211 | + } | ||
212 | + | ||
213 | + public void setTotalDiscount(double totalDiscount) { | ||
214 | + this.totalDiscount = totalDiscount; | ||
215 | + } | ||
216 | +} |
... | @@ -79,13 +79,13 @@ public interface ApiService { | ... | @@ -79,13 +79,13 @@ public interface ApiService { |
79 | @Headers("Content-Type: application/json") | 79 | @Headers("Content-Type: application/json") |
80 | @POST("/user/v5/{appUuid}/logout") | 80 | @POST("/user/v5/{appUuid}/logout") |
81 | Call<ResponseBody> logoutUserJwt(@Path("appUuid") String appUuid, | 81 | Call<ResponseBody> logoutUserJwt(@Path("appUuid") String appUuid, |
82 | - @Body RequestBody request, | 82 | + @Body RequestBody request, |
83 | - @Header(WarpConstants.HEADER_DATE) String timeStamp, | 83 | + @Header(WarpConstants.HEADER_DATE) String timeStamp, |
84 | - @Header(WarpConstants.HEADER_LOYALTY_BUNDLE_ID) String bundleId, | 84 | + @Header(WarpConstants.HEADER_LOYALTY_BUNDLE_ID) String bundleId, |
85 | - @Header(WarpConstants.HEADER_UNIQUE_DEVICE_ID) String deviceId, | 85 | + @Header(WarpConstants.HEADER_UNIQUE_DEVICE_ID) String deviceId, |
86 | - @Header(WarpConstants.HEADER_CHANNEL) String channel, | 86 | + @Header(WarpConstants.HEADER_CHANNEL) String channel, |
87 | - @Header(WarpConstants.HEADER_WEB_ID) String webId, | 87 | + @Header(WarpConstants.HEADER_WEB_ID) String webId, |
88 | - @Header(WarpConstants.HEADER_SIGNATURE) String signature); | 88 | + @Header(WarpConstants.HEADER_SIGNATURE) String signature); |
89 | 89 | ||
90 | @Headers("Content-Type: application/json") | 90 | @Headers("Content-Type: application/json") |
91 | @POST("/oauth/{appUuid}/context") | 91 | @POST("/oauth/{appUuid}/context") |
... | @@ -174,6 +174,18 @@ public interface ApiService { | ... | @@ -174,6 +174,18 @@ public interface ApiService { |
174 | 174 | ||
175 | @Headers("Content-Type: application/json") | 175 | @Headers("Content-Type: application/json") |
176 | @POST("/oauth/{appUuid}/context") | 176 | @POST("/oauth/{appUuid}/context") |
177 | + Call<ResponseBody> getMarketPassDetails(@Path("appUuid") String appUuid, | ||
178 | + @Body RequestBody request, | ||
179 | + @Header(WarpConstants.HEADER_DATE) String timeStamp, | ||
180 | + @Header(WarpConstants.HEADER_LOYALTY_BUNDLE_ID) String bundleId, | ||
181 | + @Header(WarpConstants.HEADER_UNIQUE_DEVICE_ID) String deviceId, | ||
182 | + @Header(WarpConstants.HEADER_CHANNEL) String channel, | ||
183 | + @Header(WarpConstants.HEADER_WEB_ID) String webId, | ||
184 | + @Header(WarpConstants.HEADER_SIGNATURE) String signature, | ||
185 | + @Header(WarpConstants.HEADER_AUTHORIZATION) String bearer); | ||
186 | + | ||
187 | + @Headers("Content-Type: application/json") | ||
188 | + @POST("/oauth/{appUuid}/context") | ||
177 | Call<ResponseBody> sendTelematicsData(@Path("appUuid") String appUuid, | 189 | Call<ResponseBody> sendTelematicsData(@Path("appUuid") String appUuid, |
178 | @Body RequestBody request, | 190 | @Body RequestBody request, |
179 | @Header(WarpConstants.HEADER_DATE) String timeStamp, | 191 | @Header(WarpConstants.HEADER_DATE) String timeStamp, | ... | ... |
... | @@ -94,6 +94,7 @@ import ly.warp.sdk.io.models.CouponList; | ... | @@ -94,6 +94,7 @@ import ly.warp.sdk.io.models.CouponList; |
94 | import ly.warp.sdk.io.models.Couponset; | 94 | import ly.warp.sdk.io.models.Couponset; |
95 | import ly.warp.sdk.io.models.CouponsetsList; | 95 | import ly.warp.sdk.io.models.CouponsetsList; |
96 | import ly.warp.sdk.io.models.LoyaltySDKDynatraceEventModel; | 96 | import ly.warp.sdk.io.models.LoyaltySDKDynatraceEventModel; |
97 | +import ly.warp.sdk.io.models.MarketPassDetailsModel; | ||
97 | import ly.warp.sdk.io.models.Merchant; | 98 | import ly.warp.sdk.io.models.Merchant; |
98 | import ly.warp.sdk.io.models.MerchantCategoriesList; | 99 | import ly.warp.sdk.io.models.MerchantCategoriesList; |
99 | import ly.warp.sdk.io.models.MerchantList; | 100 | import ly.warp.sdk.io.models.MerchantList; |
... | @@ -2563,6 +2564,93 @@ public class WarplyManager { | ... | @@ -2563,6 +2564,93 @@ public class WarplyManager { |
2563 | return future; | 2564 | return future; |
2564 | } | 2565 | } |
2565 | 2566 | ||
2567 | + private static ListenableFuture<MarketPassDetailsModel> getMarketPassDetails(ApiService service) { | ||
2568 | + SettableFuture<MarketPassDetailsModel> future = SettableFuture.create(); | ||
2569 | + | ||
2570 | + String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); | ||
2571 | + String apiKey = WarpUtils.getApiKey(Warply.getWarplyContext()); | ||
2572 | + String webId = WarpUtils.getWebId(Warply.getWarplyContext()); | ||
2573 | + | ||
2574 | + Map<String, Object> jsonParamsMarketPassDetails = new ArrayMap<>(); | ||
2575 | + Map<String, Object> jsonParams = new ArrayMap<>(); | ||
2576 | + jsonParams.put("action", "integration"); | ||
2577 | + jsonParams.put("method", "supermarket_profile"); | ||
2578 | + | ||
2579 | + jsonParamsMarketPassDetails.put("consumer_data", jsonParams); | ||
2580 | + RequestBody marketPassDetailsRequest = RequestBody.create(MediaType.get("application/json; charset=utf-8"), (new JSONObject(jsonParamsMarketPassDetails)).toString()); | ||
2581 | + | ||
2582 | + Call<ResponseBody> marketPassDetailsCall = service.getMarketPassDetails( | ||
2583 | + WarplyProperty.getAppUuid(Warply.getWarplyContext()), | ||
2584 | + marketPassDetailsRequest, | ||
2585 | + timeStamp, | ||
2586 | + "android:" + Warply.getWarplyContext().getPackageName(), | ||
2587 | + new WarplyDeviceInfoCollector(Warply.getWarplyContext()).getUniqueDeviceId(), | ||
2588 | + "mobile", | ||
2589 | + webId, | ||
2590 | + WarpUtils.produceSignature(apiKey + timeStamp), | ||
2591 | + "Bearer " + WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("access_token") | ||
2592 | + ); | ||
2593 | + | ||
2594 | + marketPassDetailsCall.enqueue(new Callback<ResponseBody>() { | ||
2595 | + @Override | ||
2596 | + public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> response) { | ||
2597 | + if (response.code() == 200 && response.body() != null) { | ||
2598 | + JSONObject marketPassDetailsResponse = null; | ||
2599 | + try { | ||
2600 | + marketPassDetailsResponse = new JSONObject(response.body().string()); | ||
2601 | + } catch (Exception e) { | ||
2602 | + e.printStackTrace(); | ||
2603 | + } | ||
2604 | + | ||
2605 | + if (marketPassDetailsResponse != null && marketPassDetailsResponse.has("status") && marketPassDetailsResponse.optString("status", "2").equals("1")) { | ||
2606 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2607 | + dynatraceEvent.setEventName("custom_success_market_pass_details"); | ||
2608 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2609 | + | ||
2610 | + final ExecutorService executorMarketPassDetails = Executors.newFixedThreadPool(1); | ||
2611 | + final JSONObject finalMarketPassDetailsResponse = marketPassDetailsResponse; | ||
2612 | + executorMarketPassDetails.submit(() -> { | ||
2613 | + JSONObject marketPassDetailsBody = null; | ||
2614 | + try { | ||
2615 | + marketPassDetailsBody = finalMarketPassDetailsResponse.optJSONObject("result"); | ||
2616 | + } catch (Exception e) { | ||
2617 | + e.printStackTrace(); | ||
2618 | + } | ||
2619 | + | ||
2620 | + if (marketPassDetailsBody != null) { | ||
2621 | + MarketPassDetailsModel marketPassDetailsModel = new MarketPassDetailsModel(marketPassDetailsBody); | ||
2622 | + executorMarketPassDetails.shutdownNow(); | ||
2623 | + future.set(marketPassDetailsModel); | ||
2624 | + } | ||
2625 | + }); | ||
2626 | + } else { | ||
2627 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2628 | + dynatraceEvent.setEventName("custom_error_market_pass_details"); | ||
2629 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2630 | + future.set(new MarketPassDetailsModel()); | ||
2631 | + } | ||
2632 | + } else { | ||
2633 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2634 | + dynatraceEvent.setEventName("custom_error_market_pass_details"); | ||
2635 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2636 | +// future.set(new JSONObject()); | ||
2637 | + future.setException(new Throwable()); | ||
2638 | + } | ||
2639 | + } | ||
2640 | + | ||
2641 | + @Override | ||
2642 | + public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) { | ||
2643 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2644 | + dynatraceEvent.setEventName("custom_error_market_pass_details"); | ||
2645 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2646 | +// future.set(new JSONObject()); | ||
2647 | + future.setException(new Throwable()); | ||
2648 | + } | ||
2649 | + }); | ||
2650 | + | ||
2651 | + return future; | ||
2652 | + } | ||
2653 | + | ||
2566 | public static void getMapData(final CallbackReceiver<ArrayList<UnifiedCampaignModel>> receiver) { | 2654 | public static void getMapData(final CallbackReceiver<ArrayList<UnifiedCampaignModel>> receiver) { |
2567 | WarpUtils.log("************* WARPLY Get Map Data Request ********************"); | 2655 | WarpUtils.log("************* WARPLY Get Map Data Request ********************"); |
2568 | WarpUtils.log("[WARP Trace] WARPLY Get Map Data Request is active"); | 2656 | WarpUtils.log("[WARP Trace] WARPLY Get Map Data Request is active"); |
... | @@ -3815,108 +3903,6 @@ public class WarplyManager { | ... | @@ -3815,108 +3903,6 @@ public class WarplyManager { |
3815 | }); | 3903 | }); |
3816 | } | 3904 | } |
3817 | 3905 | ||
3818 | - public static void getUserCouponsWithCouponsets(WarplyUserCouponsRequest request, final CallbackReceiver<CouponList> receiver) { | ||
3819 | - WarpUtils.log("************* WARPLY User Coupons Request ********************"); | ||
3820 | - WarpUtils.log("[WARP Trace] WARPLY User Coupons Request is active"); | ||
3821 | - WarpUtils.log("**************************************************"); | ||
3822 | - | ||
3823 | - WarplyManager.getMerchantsMultilingual(new WarplyMerchantsRequest() | ||
3824 | - .setIsMultilingual(true) | ||
3825 | - , new CallbackReceiver<MerchantList>() { | ||
3826 | - @Override | ||
3827 | - public void onSuccess(MerchantList result) { | ||
3828 | - WarplyManagerHelper.setMerchantList(result); | ||
3829 | - LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
3830 | - dynatraceEvent.setEventName("custom_success_shops_loyalty"); | ||
3831 | - EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
3832 | - | ||
3833 | - getCouponsets(new WarplyGetCouponsetsRequest() | ||
3834 | - .setLanguage(WarplyProperty.getLanguage(Warply.getWarplyContext())), new CallbackReceiver<CouponsetsList>() { | ||
3835 | - @Override | ||
3836 | - public void onSuccess(CouponsetsList result) { | ||
3837 | - Warply.postReceiveMicroappData(WarpConstants.MICROAPP_COUPONS, true, "context", request.toJson(), new CouponsHook(new CallbackReceiver<CouponList>() { | ||
3838 | - @Override | ||
3839 | - public void onSuccess(CouponList response) { | ||
3840 | - CouponList mCouponList = new CouponList(); | ||
3841 | - for (Coupon coupon : response) { | ||
3842 | - for (Couponset couponset : result) { | ||
3843 | - if (coupon.getCouponsetUuid().equals(couponset.getUuid())) { | ||
3844 | - coupon.setDescription(couponset.getShortDescription()); | ||
3845 | - coupon.setImage(couponset.getImgPreview()); | ||
3846 | - coupon.setName(couponset.getName()); | ||
3847 | - coupon.setMerchantUuid(couponset.getMerchantUuid()); | ||
3848 | - coupon.setInnerText(couponset.getInnerText()); | ||
3849 | - coupon.setDiscount_type(couponset.getDiscount_type()); | ||
3850 | - coupon.setFinal_price(couponset.getFinal_price()); | ||
3851 | - mCouponList.add(coupon); | ||
3852 | - } | ||
3853 | - } | ||
3854 | - } | ||
3855 | - WarplyManagerHelper.setCouponList(mCouponList); | ||
3856 | - | ||
3857 | - CouponList mActiveCouponList = new CouponList(); | ||
3858 | - for (Coupon coupon : mCouponList) { | ||
3859 | - if (coupon.getStatus() == 1) { | ||
3860 | - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); | ||
3861 | - Date newDate = new Date(); | ||
3862 | - try { | ||
3863 | - newDate = simpleDateFormat.parse(coupon.getExpiration()); | ||
3864 | - } catch (ParseException e) { | ||
3865 | - e.printStackTrace(); | ||
3866 | - } | ||
3867 | - coupon.setExpirationDate(newDate); | ||
3868 | - mActiveCouponList.add(coupon); | ||
3869 | - } | ||
3870 | - } | ||
3871 | - | ||
3872 | - Collections.sort(mActiveCouponList, (coupon1, coupon2) -> coupon1.getExpirationDate().compareTo(coupon2.getExpirationDate())); | ||
3873 | - | ||
3874 | - receiver.onSuccess(mActiveCouponList); | ||
3875 | - } | ||
3876 | - | ||
3877 | - @Override | ||
3878 | - public void onFailure(int errorCode) { | ||
3879 | - if (errorCode == 401) { | ||
3880 | - refreshToken(new WarplyRefreshTokenRequest(), new CallbackReceiver<JSONObject>() { | ||
3881 | - @Override | ||
3882 | - public void onSuccess(JSONObject result) { | ||
3883 | - int status = result.optInt("status", 2); | ||
3884 | - if (status == 1) | ||
3885 | - getUserCoupons(request, receiver); | ||
3886 | - else | ||
3887 | - receiver.onFailure(status); | ||
3888 | - } | ||
3889 | - | ||
3890 | - @Override | ||
3891 | - public void onFailure(int errorCode) { | ||
3892 | - receiver.onFailure(errorCode); | ||
3893 | - } | ||
3894 | - }); | ||
3895 | - } else | ||
3896 | - receiver.onFailure(errorCode); | ||
3897 | - } | ||
3898 | - }, | ||
3899 | - request.getSignature())); | ||
3900 | - } | ||
3901 | - | ||
3902 | - @Override | ||
3903 | - public void onFailure(int errorCode) { | ||
3904 | - receiver.onFailure(errorCode); | ||
3905 | - } | ||
3906 | - }); | ||
3907 | - } | ||
3908 | - | ||
3909 | - @Override | ||
3910 | - public void onFailure(int errorCode) { | ||
3911 | - LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
3912 | - dynatraceEvent.setEventName("custom_error_shops_loyalty"); | ||
3913 | - EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
3914 | - | ||
3915 | - receiver.onFailure(errorCode); | ||
3916 | - } | ||
3917 | - }); | ||
3918 | - } | ||
3919 | - | ||
3920 | public static void getMerchantsMultilingual(ArrayList<String> catuuids, final CallbackReceiver<MerchantList> receiver) { | 3906 | public static void getMerchantsMultilingual(ArrayList<String> catuuids, final CallbackReceiver<MerchantList> receiver) { |
3921 | WarpUtils.log("************* WARPLY Merchants Request ********************"); | 3907 | WarpUtils.log("************* WARPLY Merchants Request ********************"); |
3922 | WarpUtils.log("[WARP Trace] WARPLY Merchants Request is active"); | 3908 | WarpUtils.log("[WARP Trace] WARPLY Merchants Request is active"); |
... | @@ -4057,231 +4043,6 @@ public class WarplyManager { | ... | @@ -4057,231 +4043,6 @@ public class WarplyManager { |
4057 | }); | 4043 | }); |
4058 | } | 4044 | } |
4059 | 4045 | ||
4060 | -// public static void getUserCouponsWithCouponsets(final CallbackReceiver<CouponList> receiver) { | ||
4061 | -// WarpUtils.log("************* WARPLY User Coupons Request ********************"); | ||
4062 | -// WarpUtils.log("[WARP Trace] WARPLY User Coupons Request is active"); | ||
4063 | -// WarpUtils.log("**************************************************"); | ||
4064 | -// | ||
4065 | -// ApiService service = ApiClient.getRetrofitInstance().create(ApiService.class); | ||
4066 | -// | ||
4067 | -// getMerchantsRetro(service, new Callback<ResponseBody>() { | ||
4068 | -// @Override | ||
4069 | -// public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> responseMerchants) { | ||
4070 | -// if (responseMerchants.code() == 200 && responseMerchants.body() != null) { | ||
4071 | -// JSONObject jobjMerchantsResponse = null; | ||
4072 | -// try { | ||
4073 | -// jobjMerchantsResponse = new JSONObject(responseMerchants.body().string()); | ||
4074 | -// } catch (Exception e) { | ||
4075 | -// e.printStackTrace(); | ||
4076 | -// } | ||
4077 | -// | ||
4078 | -// if (jobjMerchantsResponse != null && jobjMerchantsResponse.has("status") && jobjMerchantsResponse.optString("status", "2").equals("1")) { | ||
4079 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4080 | -// dynatraceEvent.setEventName("custom_success_shops_loyalty"); | ||
4081 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4082 | -// | ||
4083 | -// JSONArray jMerchantsBody = null; | ||
4084 | -// try { | ||
4085 | -// jMerchantsBody = jobjMerchantsResponse.optJSONObject("context").optJSONObject("MAPP_SHOPS").optJSONArray("result"); | ||
4086 | -// } catch (Exception e) { | ||
4087 | -// e.printStackTrace(); | ||
4088 | -// } | ||
4089 | -// | ||
4090 | -// if (jMerchantsBody != null) { | ||
4091 | -// MerchantList mMerchantList = new MerchantList(); | ||
4092 | -// | ||
4093 | -// final ExecutorService executorShops = Executors.newFixedThreadPool(1); | ||
4094 | -// JSONArray finalMerchantsJBody = jMerchantsBody; | ||
4095 | -// executorShops.submit(() -> { | ||
4096 | -// for (int i = 0; i < finalMerchantsJBody.length(); ++i) { | ||
4097 | -// mMerchantList.add(new Merchant(finalMerchantsJBody.optJSONObject(i))); | ||
4098 | -// } | ||
4099 | -// WarplyManagerHelper.setMerchantList(mMerchantList); | ||
4100 | -// executorShops.shutdownNow(); | ||
4101 | -// }); | ||
4102 | -// | ||
4103 | -// getCouponsetsRetro(service, new Callback<ResponseBody>() { | ||
4104 | -// @Override | ||
4105 | -// public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> responseCouponsets) { | ||
4106 | -// if (responseCouponsets.code() == 200 && responseCouponsets.body() != null) { | ||
4107 | -// JSONObject jobjCouponsetsResponse = null; | ||
4108 | -// try { | ||
4109 | -// jobjCouponsetsResponse = new JSONObject(responseCouponsets.body().string()); | ||
4110 | -// } catch (Exception e) { | ||
4111 | -// e.printStackTrace(); | ||
4112 | -// } | ||
4113 | -// | ||
4114 | -// if (jobjCouponsetsResponse != null && jobjCouponsetsResponse.has("status") && jobjCouponsetsResponse.optString("status", "2").equals("1")) { | ||
4115 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4116 | -// dynatraceEvent.setEventName("custom_success_couponsets_loyalty"); | ||
4117 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4118 | -// | ||
4119 | -// JSONObject finalJobjCouponsetsResponse = jobjCouponsetsResponse; | ||
4120 | -// getUserCouponsRetro(service, new Callback<ResponseBody>() { | ||
4121 | -// @Override | ||
4122 | -// public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> responseCoupons) { | ||
4123 | -// if (responseCoupons.code() == 200 && responseCoupons.body() != null) { | ||
4124 | -// JSONObject jobjCouponsResponse = null; | ||
4125 | -// try { | ||
4126 | -// jobjCouponsResponse = new JSONObject(responseCoupons.body().string()); | ||
4127 | -// } catch (Exception e) { | ||
4128 | -// e.printStackTrace(); | ||
4129 | -// } | ||
4130 | -// | ||
4131 | -// if (jobjCouponsResponse != null && jobjCouponsResponse.has("status") && jobjCouponsResponse.optInt("status", 2) == 1) { | ||
4132 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4133 | -// dynatraceEvent.setEventName("custom_success_user_coupons_loyalty"); | ||
4134 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4135 | -// | ||
4136 | -// JSONObject finalJobjCouponsResponse = jobjCouponsResponse; | ||
4137 | -// final ExecutorService executor = Executors.newFixedThreadPool(1); | ||
4138 | -// executor.submit(() -> { | ||
4139 | -// // COUPONS START // | ||
4140 | -// JSONArray jCouponsBody = null; | ||
4141 | -// try { | ||
4142 | -// jCouponsBody = finalJobjCouponsResponse.optJSONArray("result"); | ||
4143 | -// } catch (Exception e) { | ||
4144 | -// e.printStackTrace(); | ||
4145 | -// } | ||
4146 | -// // COUPONS END // | ||
4147 | -// | ||
4148 | -// // COUPONSETS START // | ||
4149 | -// JSONArray jCouponsetsBody = null; | ||
4150 | -// try { | ||
4151 | -// jCouponsetsBody = finalJobjCouponsetsResponse.optJSONObject("context").optJSONArray("MAPP_COUPON"); | ||
4152 | -// } catch (Exception e) { | ||
4153 | -// e.printStackTrace(); | ||
4154 | -// } | ||
4155 | -// // COUPONSETS END // | ||
4156 | -// | ||
4157 | -// if (jCouponsetsBody != null && jCouponsBody != null) { | ||
4158 | -// CouponList mCouponList = new CouponList(); | ||
4159 | -// CouponList mCouponRedeemedList = new CouponList(); | ||
4160 | -// CouponsetsList mCouponsetList = new CouponsetsList(); | ||
4161 | -// for (int i = 0; i < jCouponsetsBody.length(); ++i) { | ||
4162 | -// Couponset tempCouponset = new Couponset(jCouponsetsBody.optJSONObject(i)); | ||
4163 | -// mCouponsetList.add(tempCouponset); | ||
4164 | -// for (int j = 0; j < jCouponsBody.length(); ++j) { | ||
4165 | -// Coupon tempCoupon = new Coupon(jCouponsBody.optJSONObject(j)); | ||
4166 | -// if (tempCoupon.getCouponsetUuid().equals(tempCouponset.getUuid())) { | ||
4167 | -// tempCoupon.setDescription(tempCouponset.getShortDescription()); | ||
4168 | -// tempCoupon.setImage(tempCouponset.getImgPreview()); | ||
4169 | -// tempCoupon.setName(tempCouponset.getName()); | ||
4170 | -// tempCoupon.setMerchantUuid(tempCouponset.getMerchantUuid()); | ||
4171 | -// tempCoupon.setInnerText(tempCouponset.getInnerText()); | ||
4172 | -// tempCoupon.setDiscount_type(tempCouponset.getDiscount_type()); | ||
4173 | -// tempCoupon.setFinal_price(tempCouponset.getFinal_price()); | ||
4174 | -// mCouponList.add(tempCoupon); | ||
4175 | -// } | ||
4176 | -// } | ||
4177 | -// } | ||
4178 | -// | ||
4179 | -// for (int j = 0; j < jCouponsBody.length(); ++j) { | ||
4180 | -// Coupon tempCoupon = new Coupon(jCouponsBody.optJSONObject(j)); | ||
4181 | -// if (tempCoupon.getStatus() == 0) { | ||
4182 | -// mCouponRedeemedList.add(tempCoupon); | ||
4183 | -// } | ||
4184 | -// } | ||
4185 | -// WarplyManagerHelper.setCouponsets(mCouponsetList); | ||
4186 | -// WarplyManagerHelper.setCouponList(mCouponList); | ||
4187 | -// WarplyManagerHelper.setCouponRedeemedList(mCouponRedeemedList); | ||
4188 | -// | ||
4189 | -// CouponList mActiveCouponList = new CouponList(); | ||
4190 | -// for (Coupon coupon : mCouponList) { | ||
4191 | -// if (coupon.getStatus() == 1) { | ||
4192 | -// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); | ||
4193 | -// Date newDate = new Date(); | ||
4194 | -// try { | ||
4195 | -// newDate = simpleDateFormat.parse(coupon.getExpiration()); | ||
4196 | -// } catch ( | ||
4197 | -// ParseException e) { | ||
4198 | -// e.printStackTrace(); | ||
4199 | -// } | ||
4200 | -// coupon.setExpirationDate(newDate); | ||
4201 | -// mActiveCouponList.add(coupon); | ||
4202 | -// } | ||
4203 | -// } | ||
4204 | -// | ||
4205 | -// Collections.sort(mActiveCouponList, (coupon1, coupon2) -> coupon1.getExpirationDate().compareTo(coupon2.getExpirationDate())); | ||
4206 | -// | ||
4207 | -// new Handler(Looper.getMainLooper()).post(() -> receiver.onSuccess(mActiveCouponList)); | ||
4208 | -// executor.shutdownNow(); | ||
4209 | -// } | ||
4210 | -// }); | ||
4211 | -// } else { | ||
4212 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4213 | -// dynatraceEvent.setEventName("custom_error_user_coupons_loyalty"); | ||
4214 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4215 | -// receiver.onFailure(2); | ||
4216 | -// } | ||
4217 | -// } else { | ||
4218 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4219 | -// dynatraceEvent.setEventName("custom_error_user_coupons_loyalty"); | ||
4220 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4221 | -// receiver.onFailure(responseCoupons.code()); | ||
4222 | -// } | ||
4223 | -// } | ||
4224 | -// | ||
4225 | -// @Override | ||
4226 | -// public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) { | ||
4227 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4228 | -// dynatraceEvent.setEventName("custom_error_user_coupons_loyalty"); | ||
4229 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4230 | -// receiver.onFailure(2); | ||
4231 | -// } | ||
4232 | -// }); | ||
4233 | -// | ||
4234 | -// } else { | ||
4235 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4236 | -// dynatraceEvent.setEventName("custom_error_couponsets_loyalty"); | ||
4237 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4238 | -// receiver.onFailure(2); | ||
4239 | -// } | ||
4240 | -// | ||
4241 | -// } else { | ||
4242 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4243 | -// dynatraceEvent.setEventName("custom_error_couponsets_loyalty"); | ||
4244 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4245 | -// receiver.onFailure(responseCouponsets.code()); | ||
4246 | -// } | ||
4247 | -// } | ||
4248 | -// | ||
4249 | -// @Override | ||
4250 | -// public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) { | ||
4251 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4252 | -// dynatraceEvent.setEventName("custom_error_couponsets_loyalty"); | ||
4253 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4254 | -// receiver.onFailure(2); | ||
4255 | -// } | ||
4256 | -// }); | ||
4257 | -// } | ||
4258 | -// } else { | ||
4259 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4260 | -// dynatraceEvent.setEventName("custom_error_shops_loyalty"); | ||
4261 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4262 | -// | ||
4263 | -// receiver.onFailure(2); | ||
4264 | -// } | ||
4265 | -// } else { | ||
4266 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4267 | -// dynatraceEvent.setEventName("custom_error_shops_loyalty"); | ||
4268 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4269 | -// | ||
4270 | -// receiver.onFailure(responseMerchants.code()); | ||
4271 | -// } | ||
4272 | -// } | ||
4273 | -// | ||
4274 | -// @Override | ||
4275 | -// public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) { | ||
4276 | -// LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
4277 | -// dynatraceEvent.setEventName("custom_error_shops_loyalty"); | ||
4278 | -// EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
4279 | -// | ||
4280 | -// receiver.onFailure(2); | ||
4281 | -// } | ||
4282 | -// }); | ||
4283 | -// } | ||
4284 | - | ||
4285 | private static /*void*/ ListenableFuture<CouponsetsList> getCouponsetsRetro(ApiService service/*, Callback<ResponseBody> callback*/) { | 4046 | private static /*void*/ ListenableFuture<CouponsetsList> getCouponsetsRetro(ApiService service/*, Callback<ResponseBody> callback*/) { |
4286 | SettableFuture<CouponsetsList> future = SettableFuture.create(); | 4047 | SettableFuture<CouponsetsList> future = SettableFuture.create(); |
4287 | 4048 | ||
... | @@ -5063,6 +4824,7 @@ public class WarplyManager { | ... | @@ -5063,6 +4824,7 @@ public class WarplyManager { |
5063 | jsonParams.put("action", "user_coupons"); | 4824 | jsonParams.put("action", "user_coupons"); |
5064 | JSONArray jArr = new JSONArray(); | 4825 | JSONArray jArr = new JSONArray(); |
5065 | jArr.put("merchant"); | 4826 | jArr.put("merchant"); |
4827 | + jArr.put("redemption"); | ||
5066 | jsonParams.put("details", jArr); | 4828 | jsonParams.put("details", jArr); |
5067 | jsonParams.put("language", WarplyProperty.getLanguage(Warply.getWarplyContext())); | 4829 | jsonParams.put("language", WarplyProperty.getLanguage(Warply.getWarplyContext())); |
5068 | // JSONObject jPagination= new JSONObject(); | 4830 | // JSONObject jPagination= new JSONObject(); |
... | @@ -5498,4 +5260,39 @@ public class WarplyManager { | ... | @@ -5498,4 +5260,39 @@ public class WarplyManager { |
5498 | } | 5260 | } |
5499 | return false; | 5261 | return false; |
5500 | } | 5262 | } |
5263 | + | ||
5264 | + public static void getMarketPassDetails(final CallbackReceiver<MarketPassDetailsModel> receiver) { | ||
5265 | + WarpUtils.log("************* WARPLY Market Pass Details Request ********************"); | ||
5266 | + WarpUtils.log("[WARP Trace] WARPLY Market Pass Details is active"); | ||
5267 | + WarpUtils.log("**************************************************"); | ||
5268 | + | ||
5269 | + ApiService service = ApiClient.getRetrofitInstance().create(ApiService.class); | ||
5270 | + ListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(1)); | ||
5271 | + | ||
5272 | + ListenableFuture<MarketPassDetailsModel> futureMarketPassDetails = getMarketPassDetails(service); | ||
5273 | + | ||
5274 | + ListenableFuture<List<Object>> allResultsFuture = Futures.allAsList(futureMarketPassDetails); | ||
5275 | + ListenableFuture<MarketPassDetailsModel> mergedResultFuture = Futures.transformAsync( | ||
5276 | + allResultsFuture, | ||
5277 | + results -> { | ||
5278 | + MarketPassDetailsModel resultMarketPassDetails = (MarketPassDetailsModel) results.get(0); | ||
5279 | + return executorService.submit(() -> resultMarketPassDetails); | ||
5280 | + }, | ||
5281 | + executorService | ||
5282 | + ); | ||
5283 | + | ||
5284 | + Futures.addCallback(mergedResultFuture, new FutureCallback<MarketPassDetailsModel>() { | ||
5285 | + @Override | ||
5286 | + public void onSuccess(MarketPassDetailsModel mergedResult) { | ||
5287 | + executorService.shutdownNow(); | ||
5288 | + new Handler(Looper.getMainLooper()).post(() -> receiver.onSuccess(mergedResult)); | ||
5289 | + } | ||
5290 | + | ||
5291 | + @Override | ||
5292 | + public void onFailure(Throwable throwable) { | ||
5293 | + executorService.shutdownNow(); | ||
5294 | + new Handler(Looper.getMainLooper()).post(() -> receiver.onFailure(2)); | ||
5295 | + } | ||
5296 | + }, executorService); | ||
5297 | + } | ||
5501 | } | 5298 | } | ... | ... |
-
Please register or login to post a comment