Panagiotis Triantafyllou

refresh token fixes

...@@ -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");
......