Showing
5 changed files
with
176 additions
and
7 deletions
| ... | @@ -81,6 +81,7 @@ | ... | @@ -81,6 +81,7 @@ | 
| 81 | - (NSDictionary*)loginCosmoteWithGuid:(NSString*)guid andAppUuid:(NSString*)appUuid andTicket:(NSString*)ticket; | 81 | - (NSDictionary*)loginCosmoteWithGuid:(NSString*)guid andAppUuid:(NSString*)appUuid andTicket:(NSString*)ticket; | 
| 82 | - (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 82 | - (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 
| 83 | - (void)getUnifiedCouponsAsync:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 83 | - (void)getUnifiedCouponsAsync:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 
| 84 | +- (void) getAvailableCouponsAsync:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | ||
| 84 | - (void)getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 85 | - (void)getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 
| 85 | - (void)getCouponsetsDealsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 86 | - (void)getCouponsetsDealsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 
| 86 | - (void) cancelUnifiedCouponAsync:(NSString*) transactionId :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 87 | - (void) cancelUnifiedCouponAsync:(NSString*) transactionId :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | ... | ... | 
| ... | @@ -1464,6 +1464,19 @@ NSString *VERIFY_URL = @"/partners/cosmote/verify"; | ... | @@ -1464,6 +1464,19 @@ NSString *VERIFY_URL = @"/partners/cosmote/verify"; | 
| 1464 | }]; | 1464 | }]; | 
| 1465 | } | 1465 | } | 
| 1466 | 1466 | ||
| 1467 | +- (void) getAvailableCouponsAsync:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure | ||
| 1468 | +{ | ||
| 1469 | + [[Warply sharedService] getAvailableCouponsWithSuccessBlock:^(NSDictionary *response) { | ||
| 1470 | + if (success) { | ||
| 1471 | + success(response); | ||
| 1472 | + } | ||
| 1473 | + } failureBlock:^(NSError *error) { | ||
| 1474 | + if (failure) { | ||
| 1475 | + failure(error); | ||
| 1476 | + } | ||
| 1477 | + }]; | ||
| 1478 | +} | ||
| 1479 | + | ||
| 1467 | - (void) getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure | 1480 | - (void) getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure | 
| 1468 | { | 1481 | { | 
| 1469 | [[Warply sharedService] getCouponSetsWithSuccessBlock:active andVisible:visible andUuids:uuids :^(NSDictionary *response) { | 1482 | [[Warply sharedService] getCouponSetsWithSuccessBlock:active andVisible:visible andUuids:uuids :^(NSDictionary *response) { | ... | ... | 
| ... | @@ -403,6 +403,8 @@ WL_VERSION_INTERFACE() | ... | @@ -403,6 +403,8 @@ WL_VERSION_INTERFACE() | 
| 403 | 403 | ||
| 404 | - (void) getCouponSetsWithSuccessBlock:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 404 | - (void) getCouponSetsWithSuccessBlock:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 
| 405 | 405 | ||
| 406 | +- (void) getAvailableCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | ||
| 407 | + | ||
| 406 | - (void) getCouponSetsDealsWithSuccessBlock:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 408 | - (void) getCouponSetsDealsWithSuccessBlock:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 
| 407 | 409 | ||
| 408 | - (void) cancelUnifiedCouponWithSuccessBlock:(NSString*) transactionId :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | 410 | - (void) cancelUnifiedCouponWithSuccessBlock:(NSString*) transactionId :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; | ... | ... | 
| ... | @@ -3297,6 +3297,44 @@ WL_VERSION_IMPLEMENTATION(WL_VERSION) | ... | @@ -3297,6 +3297,44 @@ WL_VERSION_IMPLEMENTATION(WL_VERSION) | 
| 3297 | }]; | 3297 | }]; | 
| 3298 | } | 3298 | } | 
| 3299 | 3299 | ||
| 3300 | +- (void) getAvailableCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure | ||
| 3301 | +{ | ||
| 3302 | + /* | ||
| 3303 | + "coupon": { | ||
| 3304 | + "action": "availability", | ||
| 3305 | + "filters": { | ||
| 3306 | + "uuids":null, | ||
| 3307 | + "availability_enabled":true | ||
| 3308 | + } | ||
| 3309 | + } | ||
| 3310 | + */ | ||
| 3311 | + | ||
| 3312 | + NSMutableDictionary* filtersDictionary = [[NSMutableDictionary alloc] init]; | ||
| 3313 | + [filtersDictionary setValue:[NSNull null] forKey:@"uuids"]; | ||
| 3314 | + [filtersDictionary setValue:@YES forKey:@"availability_enabled"]; | ||
| 3315 | + | ||
| 3316 | + NSMutableDictionary* couponDictionary = [[NSMutableDictionary alloc] init]; | ||
| 3317 | + [couponDictionary setValue:@"availability" forKey:@"action"]; | ||
| 3318 | + [couponDictionary setValue:filtersDictionary forKey:@"filters"]; | ||
| 3319 | + | ||
| 3320 | + NSMutableDictionary* dataDictionary = [[NSMutableDictionary alloc] init]; | ||
| 3321 | + [dataDictionary setValue:couponDictionary forKey:@"coupon"]; | ||
| 3322 | + | ||
| 3323 | + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dataDictionary options:0 error:NULL]; | ||
| 3324 | + [self sendContext:jsonData successBlock:^(NSDictionary *contextResponse) { | ||
| 3325 | + if (success) { | ||
| 3326 | + success(contextResponse); | ||
| 3327 | + } | ||
| 3328 | + NSLog(@"**************** WARPLY Response *****************" ); | ||
| 3329 | + NSLog(@"%@", contextResponse ); | ||
| 3330 | + } failureBlock:^(NSError *error) { | ||
| 3331 | + if (failure) { | ||
| 3332 | + failure(error); | ||
| 3333 | + } | ||
| 3334 | + NSLog(@"Error at getAvailableCoupons %@", error ); | ||
| 3335 | + }]; | ||
| 3336 | +} | ||
| 3337 | + | ||
| 3300 | - (void) getCouponSetsWithSuccessBlock:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure | 3338 | - (void) getCouponSetsWithSuccessBlock:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure | 
| 3301 | { | 3339 | { | 
| 3302 | NSMutableDictionary* data = [[NSMutableDictionary alloc] init]; | 3340 | NSMutableDictionary* data = [[NSMutableDictionary alloc] init]; | ... | ... | 
| ... | @@ -1106,6 +1106,8 @@ public class swiftApi { | ... | @@ -1106,6 +1106,8 @@ public class swiftApi { | 
| 1106 | private var banner_img: String? | 1106 | private var banner_img: String? | 
| 1107 | private var banner_title: String? | 1107 | private var banner_title: String? | 
| 1108 | private var unifiedCampaign: UnifiedCampaignModel? | 1108 | private var unifiedCampaign: UnifiedCampaignModel? | 
| 1109 | + private var coupon_availability: Int? | ||
| 1110 | + private var category_id: String? | ||
| 1109 | 1111 | ||
| 1110 | public init() { | 1112 | public init() { | 
| 1111 | self.index_url = "" | 1113 | self.index_url = "" | 
| ... | @@ -1133,6 +1135,8 @@ public class swiftApi { | ... | @@ -1133,6 +1135,8 @@ public class swiftApi { | 
| 1133 | self.banner_img = "" | 1135 | self.banner_img = "" | 
| 1134 | self.banner_title = "" | 1136 | self.banner_title = "" | 
| 1135 | self.unifiedCampaign = swiftApi.UnifiedCampaignModel() | 1137 | self.unifiedCampaign = swiftApi.UnifiedCampaignModel() | 
| 1138 | + self.coupon_availability = nil | ||
| 1139 | + self.category_id = "" | ||
| 1136 | } | 1140 | } | 
| 1137 | 1141 | ||
| 1138 | public init(dictionary: [String: Any]) { | 1142 | public init(dictionary: [String: Any]) { | 
| ... | @@ -1149,6 +1153,7 @@ public class swiftApi { | ... | @@ -1149,6 +1153,7 @@ public class swiftApi { | 
| 1149 | self.sorting = dictionary["sorting"] as? Int? ?? 0 | 1153 | self.sorting = dictionary["sorting"] as? Int? ?? 0 | 
| 1150 | self.ccms = nil | 1154 | self.ccms = nil | 
| 1151 | self.unifiedCampaign = swiftApi.UnifiedCampaignModel() | 1155 | self.unifiedCampaign = swiftApi.UnifiedCampaignModel() | 
| 1156 | + self.coupon_availability = nil | ||
| 1152 | 1157 | ||
| 1153 | // let extra_fields = dictionary["extra_fields"] as? [String: Any]? ?? ["":""] | 1158 | // let extra_fields = dictionary["extra_fields"] as? [String: Any]? ?? ["":""] | 
| 1154 | if let extra_fields = dictionary["extra_fields"] as? [String: Any] { | 1159 | if let extra_fields = dictionary["extra_fields"] as? [String: Any] { | 
| ... | @@ -1162,6 +1167,7 @@ public class swiftApi { | ... | @@ -1162,6 +1167,7 @@ public class swiftApi { | 
| 1162 | self.category_title = extra_fields["category_title"] as? String ?? "" | 1167 | self.category_title = extra_fields["category_title"] as? String ?? "" | 
| 1163 | self.banner_img = extra_fields["Banner_img"] as? String ?? "" | 1168 | self.banner_img = extra_fields["Banner_img"] as? String ?? "" | 
| 1164 | self.banner_title = extra_fields["Banner_title"] as? String ?? "" | 1169 | self.banner_title = extra_fields["Banner_title"] as? String ?? "" | 
| 1170 | + self.category_id = extra_fields["category_id"] as? String ?? "" | ||
| 1165 | } else { | 1171 | } else { | 
| 1166 | self.subcategory = "" | 1172 | self.subcategory = "" | 
| 1167 | self.loyaltyCampaignId = "" | 1173 | self.loyaltyCampaignId = "" | 
| ... | @@ -1400,6 +1406,24 @@ public class swiftApi { | ... | @@ -1400,6 +1406,24 @@ public class swiftApi { | 
| 1400 | self.unifiedCampaign = newValue | 1406 | self.unifiedCampaign = newValue | 
| 1401 | } | 1407 | } | 
| 1402 | } | 1408 | } | 
| 1409 | + | ||
| 1410 | + public var _coupon_availability: Int? { | ||
| 1411 | + get { // getter | ||
| 1412 | + return self.coupon_availability | ||
| 1413 | + } | ||
| 1414 | + set(newValue) { //setter | ||
| 1415 | + self.coupon_availability = newValue | ||
| 1416 | + } | ||
| 1417 | + } | ||
| 1418 | + | ||
| 1419 | + public var _category_id: String? { | ||
| 1420 | + get { // getter | ||
| 1421 | + return self.category_id | ||
| 1422 | + } | ||
| 1423 | + set(newValue) { //setter | ||
| 1424 | + self.category_id = newValue | ||
| 1425 | + } | ||
| 1426 | + } | ||
| 1403 | } | 1427 | } | 
| 1404 | 1428 | ||
| 1405 | public class CampaignDataModel { | 1429 | public class CampaignDataModel { | 
| ... | @@ -1496,6 +1520,33 @@ public class swiftApi { | ... | @@ -1496,6 +1520,33 @@ public class swiftApi { | 
| 1496 | 1520 | ||
| 1497 | campaignsArray = campaignsArray + (campaignsPersonalizedData ?? []) | 1521 | campaignsArray = campaignsArray + (campaignsPersonalizedData ?? []) | 
| 1498 | 1522 | ||
| 1523 | + swiftApi().getAvailableCouponsAsync({responseDataAvailability in | ||
| 1524 | + if let availabilityData = responseDataAvailability { | ||
| 1525 | + for tempCampaign in campaignsArray { | ||
| 1526 | + for item in availabilityData { | ||
| 1527 | + if (tempCampaign._couponset == item.key) { | ||
| 1528 | + tempCampaign._coupon_availability = item.value as? Int ?? 0 | ||
| 1529 | + } | ||
| 1530 | + } | ||
| 1531 | + } | ||
| 1532 | + } | ||
| 1533 | + | ||
| 1534 | + let parsedCampagins = parseCampaigns() | ||
| 1535 | + getCampaignsCallback(parsedCampagins); | ||
| 1536 | + | ||
| 1537 | + }, failureCallback: {errorCode in | ||
| 1538 | + let parsedCampagins = parseCampaigns() | ||
| 1539 | + getCampaignsCallback(parsedCampagins); | ||
| 1540 | + }) | ||
| 1541 | + | ||
| 1542 | + // SwiftEventBus.post("campaigns_retrieved") | ||
| 1543 | + }, failureCallback: {errorCode in | ||
| 1544 | + | ||
| 1545 | + let parsedCampagins = parseCampaigns() | ||
| 1546 | + getCampaignsCallback(parsedCampagins); | ||
| 1547 | + }) | ||
| 1548 | + | ||
| 1549 | + func parseCampaigns() -> Array<CampaignItemModel> { | ||
| 1499 | swiftApi().setUniqueCampaignList(campaignsArray) | 1550 | swiftApi().setUniqueCampaignList(campaignsArray) | 
| 1500 | 1551 | ||
| 1501 | carouselArray = campaignsArray.filter { | 1552 | carouselArray = campaignsArray.filter { | 
| ... | @@ -1521,14 +1572,9 @@ public class swiftApi { | ... | @@ -1521,14 +1572,9 @@ public class swiftApi { | 
| 1521 | let sortedCampaigns = filteredCampaigns.sorted { | 1572 | let sortedCampaigns = filteredCampaigns.sorted { | 
| 1522 | ($0._sorting ?? 0) < ($1._sorting ?? 0) | 1573 | ($0._sorting ?? 0) < ($1._sorting ?? 0) | 
| 1523 | } | 1574 | } | 
| 1524 | - | ||
| 1525 | - getCampaignsCallback(sortedCampaigns); | ||
| 1526 | - | ||
| 1527 | - // SwiftEventBus.post("campaigns_retrieved") | ||
| 1528 | - }, failureCallback: {errorCode in | ||
| 1529 | 1575 | ||
| 1530 | - failureCallback(errorCode) | 1576 | + return sortedCampaigns | 
| 1531 | - }) | 1577 | + } | 
| 1532 | 1578 | ||
| 1533 | } else { | 1579 | } else { | 
| 1534 | let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | 1580 | let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | 
| ... | @@ -8062,4 +8108,73 @@ public class swiftApi { | ... | @@ -8062,4 +8108,73 @@ public class swiftApi { | 
| 8062 | } | 8108 | } | 
| 8063 | 8109 | ||
| 8064 | 8110 | ||
| 8111 | + public func getAvailableCouponsAsync(_ getAvailableCouponsCallback: @escaping (_ campaignsData: [String: Any]?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { | ||
| 8112 | + let instanceOfMyApi = MyApi() | ||
| 8113 | + instanceOfMyApi.getAvailableCouponsAsync(requestCallback, failureBlock: requestFailureCallback) | ||
| 8114 | + | ||
| 8115 | + | ||
| 8116 | + func requestCallback(_ responseData: [AnyHashable: Any]?) -> Void { | ||
| 8117 | +// var availableCampaignsArray:Array<CampaignItemModel> = [] | ||
| 8118 | + | ||
| 8119 | + if let responseDataDictionary = responseData as? [String: AnyObject] { | ||
| 8120 | + if (responseDataDictionary["MAPP_COUPON-status"] as? Int == 1) { | ||
| 8121 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
| 8122 | + dynatraceEvent._eventName = "custom_success_available_coupons" | ||
| 8123 | + dynatraceEvent._parameters = nil | ||
| 8124 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
| 8125 | + | ||
| 8126 | + if let responseDataMapp = responseDataDictionary["MAPP_COUPON"] as? [String: Any] { | ||
| 8127 | + if let responseDataAvailability = responseDataMapp["availability"] as? [String: Any] { | ||
| 8128 | +// for tempCampaign in swiftApi().getAllCampaignList() { | ||
| 8129 | +// for item in responseDataAvailability { | ||
| 8130 | +// if (tempCampaign._couponset == item.key) { | ||
| 8131 | +// tempCampaign._coupon_availability = item.value as? Int ?? 0 | ||
| 8132 | +// availableCampaignsArray.append(tempCampaign) | ||
| 8133 | +// } | ||
| 8134 | +// } | ||
| 8135 | +// } | ||
| 8136 | +// | ||
| 8137 | + getAvailableCouponsCallback(responseDataAvailability) | ||
| 8138 | + | ||
| 8139 | + } else { | ||
| 8140 | + getAvailableCouponsCallback(nil) | ||
| 8141 | + } | ||
| 8142 | + } else { | ||
| 8143 | + getAvailableCouponsCallback(nil) | ||
| 8144 | + } | ||
| 8145 | + | ||
| 8146 | + } else { | ||
| 8147 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
| 8148 | + dynatraceEvent._eventName = "custom_error_available_coupons" | ||
| 8149 | + dynatraceEvent._parameters = nil | ||
| 8150 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
| 8151 | + | ||
| 8152 | + getAvailableCouponsCallback(nil) | ||
| 8153 | + } | ||
| 8154 | + | ||
| 8155 | + } else { | ||
| 8156 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
| 8157 | + dynatraceEvent._eventName = "custom_error_available_coupons" | ||
| 8158 | + dynatraceEvent._parameters = nil | ||
| 8159 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
| 8160 | + | ||
| 8161 | + getAvailableCouponsCallback(nil) | ||
| 8162 | + } | ||
| 8163 | + } | ||
| 8164 | + | ||
| 8165 | + func requestFailureCallback(_ error: Error?) -> Void { | ||
| 8166 | + print("getAvailableCouponsCallback error: ") | ||
| 8167 | + print(error) | ||
| 8168 | + print("====================") | ||
| 8169 | + | ||
| 8170 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
| 8171 | + dynatraceEvent._eventName = "custom_error_available_coupons" | ||
| 8172 | + dynatraceEvent._parameters = nil | ||
| 8173 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
| 8174 | + | ||
| 8175 | + getAvailableCouponsCallback(nil) | ||
| 8176 | + } | ||
| 8177 | + } | ||
| 8178 | + | ||
| 8179 | + | ||
| 8065 | } | 8180 | } | ... | ... | 
- 
Please register or login to post a comment