Showing
1 changed file
with
41 additions
and
20 deletions
... | @@ -186,6 +186,8 @@ import retrofit2.Response; | ... | @@ -186,6 +186,8 @@ import retrofit2.Response; |
186 | */ | 186 | */ |
187 | 187 | ||
188 | public class WarplyManager { | 188 | public class WarplyManager { |
189 | + private static final int MAX_RETRIES = 3; | ||
190 | + | ||
189 | public static void getProducts(WarplyProductsRequest request, final CallbackReceiver<ProductList> receiver) { | 191 | public static void getProducts(WarplyProductsRequest request, final CallbackReceiver<ProductList> receiver) { |
190 | // String productCategory = ""; | 192 | // String productCategory = ""; |
191 | // int resStringId = getWarplyContext().getResources().getIdentifier("products_category", "string", getWarplyContext().getPackageName()); | 193 | // int resStringId = getWarplyContext().getResources().getIdentifier("products_category", "string", getWarplyContext().getPackageName()); |
... | @@ -1568,7 +1570,7 @@ public class WarplyManager { | ... | @@ -1568,7 +1570,7 @@ public class WarplyManager { |
1568 | //TODO: check to see if we need merchants global else delete request | 1570 | //TODO: check to see if we need merchants global else delete request |
1569 | ListenableFuture<MerchantList> futureMerchants = getMerchantsRetro(service); | 1571 | ListenableFuture<MerchantList> futureMerchants = getMerchantsRetro(service); |
1570 | ListenableFuture<CouponsetsList> futureCouponsets = getCouponsetsRetro(service); | 1572 | ListenableFuture<CouponsetsList> futureCouponsets = getCouponsetsRetro(service); |
1571 | - ListenableFuture<CouponList> futureCoupons = getCouponsUniversalRetro(service); | 1573 | + ListenableFuture<CouponList> futureCoupons = getCouponsUniversalRetro(service, 0); |
1572 | 1574 | ||
1573 | ListenableFuture<List<Object>> allResultsFuture = Futures.allAsList(futureMerchants, futureCouponsets, futureCoupons); | 1575 | ListenableFuture<List<Object>> allResultsFuture = Futures.allAsList(futureMerchants, futureCouponsets, futureCoupons); |
1574 | ListenableFuture<CouponList> mergedResultFuture = Futures.transformAsync( | 1576 | ListenableFuture<CouponList> mergedResultFuture = Futures.transformAsync( |
... | @@ -1603,7 +1605,7 @@ public class WarplyManager { | ... | @@ -1603,7 +1605,7 @@ public class WarplyManager { |
1603 | ListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(3)); | 1605 | ListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(3)); |
1604 | 1606 | ||
1605 | ListenableFuture<ArrayList<Campaign>> futureCampaigns = getCampaignsRetro(service); | 1607 | ListenableFuture<ArrayList<Campaign>> futureCampaigns = getCampaignsRetro(service); |
1606 | - ListenableFuture<ArrayList<Campaign>> futurePersonalizedCampaigns = getCampaignsPersonalizedRetro(service); | 1608 | + ListenableFuture<ArrayList<Campaign>> futurePersonalizedCampaigns = getCampaignsPersonalizedRetro(service, 0); |
1607 | ListenableFuture<JSONObject> futureCampaignAvailability = getCampaignAvailability(service); | 1609 | ListenableFuture<JSONObject> futureCampaignAvailability = getCampaignAvailability(service); |
1608 | 1610 | ||
1609 | ListenableFuture<List<Object>> allResultsFuture = Futures.allAsList(futureCampaigns, futurePersonalizedCampaigns, futureCampaignAvailability); | 1611 | ListenableFuture<List<Object>> allResultsFuture = Futures.allAsList(futureCampaigns, futurePersonalizedCampaigns, futureCampaignAvailability); |
... | @@ -1835,7 +1837,7 @@ public class WarplyManager { | ... | @@ -1835,7 +1837,7 @@ public class WarplyManager { |
1835 | return future; | 1837 | return future; |
1836 | } | 1838 | } |
1837 | 1839 | ||
1838 | - private static /*void*/ ListenableFuture<ArrayList<Campaign>> getCampaignsPersonalizedRetro(ApiService service/*, final CallbackReceiver<ArrayList<Campaign>> receiver*/) { | 1840 | + private static /*void*/ ListenableFuture<ArrayList<Campaign>> getCampaignsPersonalizedRetro(ApiService service, int tries/*, final CallbackReceiver<ArrayList<Campaign>> receiver*/) { |
1839 | SettableFuture<ArrayList<Campaign>> future = SettableFuture.create(); | 1841 | SettableFuture<ArrayList<Campaign>> future = SettableFuture.create(); |
1840 | 1842 | ||
1841 | String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); | 1843 | String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); |
... | @@ -1963,18 +1965,26 @@ public class WarplyManager { | ... | @@ -1963,18 +1965,26 @@ public class WarplyManager { |
1963 | public void onSuccess(JSONObject result) { | 1965 | public void onSuccess(JSONObject result) { |
1964 | int status = result.optInt("status", 2); | 1966 | int status = result.optInt("status", 2); |
1965 | if (status == 1) | 1967 | if (status == 1) |
1966 | - getCampaignsPersonalizedRetro(service/*, receiver*/); | 1968 | + getCampaignsPersonalizedRetro(service, tries/*, receiver*/); |
1967 | else { | 1969 | else { |
1968 | // receiver.onFailure(status); | 1970 | // receiver.onFailure(status); |
1971 | + if (tries < MAX_RETRIES) { | ||
1972 | + getCampaignsPersonalizedRetro(service, (tries + 1)); | ||
1973 | + } else { | ||
1969 | future.set(new ArrayList<Campaign>()); | 1974 | future.set(new ArrayList<Campaign>()); |
1970 | } | 1975 | } |
1971 | } | 1976 | } |
1977 | + } | ||
1972 | 1978 | ||
1973 | @Override | 1979 | @Override |
1974 | public void onFailure(int errorCode) { | 1980 | public void onFailure(int errorCode) { |
1975 | // receiver.onFailure(errorCode); | 1981 | // receiver.onFailure(errorCode); |
1982 | + if (tries < MAX_RETRIES) { | ||
1983 | + getCampaignsPersonalizedRetro(service, (tries + 1)); | ||
1984 | + } else { | ||
1976 | future.set(new ArrayList<Campaign>()); | 1985 | future.set(new ArrayList<Campaign>()); |
1977 | } | 1986 | } |
1987 | + } | ||
1978 | }); | 1988 | }); |
1979 | } else { | 1989 | } else { |
1980 | LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | 1990 | LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); |
... | @@ -4285,7 +4295,7 @@ public class WarplyManager { | ... | @@ -4285,7 +4295,7 @@ public class WarplyManager { |
4285 | }); | 4295 | }); |
4286 | } | 4296 | } |
4287 | 4297 | ||
4288 | - private static ListenableFuture<CouponList> getCouponsUniversalRetro(ApiService service) { | 4298 | + private static ListenableFuture<CouponList> getCouponsUniversalRetro(ApiService service, int tries) { |
4289 | SettableFuture<CouponList> future = SettableFuture.create(); | 4299 | SettableFuture<CouponList> future = SettableFuture.create(); |
4290 | 4300 | ||
4291 | String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); | 4301 | String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); |
... | @@ -4392,21 +4402,32 @@ public class WarplyManager { | ... | @@ -4392,21 +4402,32 @@ public class WarplyManager { |
4392 | future.set(new CouponList()); | 4402 | future.set(new CouponList()); |
4393 | } | 4403 | } |
4394 | } else if (response.code() == 401) { | 4404 | } else if (response.code() == 401) { |
4395 | -// refreshToken(new WarplyRefreshTokenRequest(), new CallbackReceiver<JSONObject>() { | 4405 | + refreshToken(new WarplyRefreshTokenRequest(), new CallbackReceiver<JSONObject>() { |
4396 | -// @Override | 4406 | + @Override |
4397 | -// public void onSuccess(JSONObject result) { | 4407 | + public void onSuccess(JSONObject result) { |
4398 | -// int status = result.optInt("status", 2); | 4408 | + int status = result.optInt("status", 2); |
4399 | -// if (status == 1) | 4409 | + if (status == 1) |
4400 | -// getCouponsUniversalRetro(service, callback); | 4410 | + getCouponsUniversalRetro(service, tries/*, receiver*/); |
4401 | -// else | 4411 | + else { |
4402 | -// callback.onFailure(call, new Throwable()); | 4412 | +// receiver.onFailure(status); |
4403 | -// } | 4413 | + if (tries < MAX_RETRIES) { |
4404 | -// | 4414 | + getCouponsUniversalRetro(service, (tries + 1)); |
4405 | -// @Override | 4415 | + } else { |
4406 | -// public void onFailure(int errorCode) { | 4416 | + future.set(new CouponList()); |
4407 | -// callback.onFailure(call, new Throwable()); | 4417 | + } |
4408 | -// } | 4418 | + } |
4409 | -// }); | 4419 | + } |
4420 | + | ||
4421 | + @Override | ||
4422 | + public void onFailure(int errorCode) { | ||
4423 | +// receiver.onFailure(errorCode); | ||
4424 | + if (tries < MAX_RETRIES) { | ||
4425 | + getCouponsUniversalRetro(service, (tries + 1)); | ||
4426 | + } else { | ||
4427 | + future.set(new CouponList()); | ||
4428 | + } | ||
4429 | + } | ||
4430 | + }); | ||
4410 | } else { | 4431 | } else { |
4411 | LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | 4432 | LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); |
4412 | dynatraceEvent.setEventName("custom_error_user_coupons_loyalty"); | 4433 | dynatraceEvent.setEventName("custom_error_user_coupons_loyalty"); | ... | ... |
-
Please register or login to post a comment