Manos Chorianopoulos

add getUnifiedCouponsAsync request

...@@ -80,6 +80,7 @@ ...@@ -80,6 +80,7 @@
80 - (NSDictionary*)validateCouponWithCoupon:(NSString*)coupon; 80 - (NSDictionary*)validateCouponWithCoupon:(NSString*)coupon;
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)getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(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;
84 - (void)getInboxAsync:(void (^)(NSArray *list))success failureBlock:(void (^)(NSError *error))failure; 85 - (void)getInboxAsync:(void (^)(NSArray *list))success failureBlock:(void (^)(NSError *error))failure;
85 - (void)verifyTicketAsync:(NSString*)guid :(NSString*)ticket :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 86 - (void)verifyTicketAsync:(NSString*)guid :(NSString*)ticket :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
......
...@@ -1450,6 +1450,20 @@ NSString *VERIFY_URL = @"/partners/cosmote/verify"; ...@@ -1450,6 +1450,20 @@ NSString *VERIFY_URL = @"/partners/cosmote/verify";
1450 }]; 1450 }];
1451 } 1451 }
1452 1452
1453 +- (void)getUnifiedCouponsAsync:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
1454 +{
1455 +
1456 + [[Warply sharedService] getUnifiedCouponsWithSuccessBlock:^(NSDictionary *response) {
1457 + if (success) {
1458 + success(response);
1459 + }
1460 + } failureBlock:^(NSError *error) {
1461 + if (failure) {
1462 + failure(error);
1463 + }
1464 + }];
1465 +}
1466 +
1453 - (void) getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure 1467 - (void) getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
1454 { 1468 {
1455 [[Warply sharedService] getCouponSetsWithSuccessBlock:active andVisible:visible andUuids:uuids :^(NSDictionary *response) { 1469 [[Warply sharedService] getCouponSetsWithSuccessBlock:active andVisible:visible andUuids:uuids :^(NSDictionary *response) {
......
...@@ -369,6 +369,8 @@ WL_VERSION_INTERFACE() ...@@ -369,6 +369,8 @@ WL_VERSION_INTERFACE()
369 369
370 - (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 370 - (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
371 371
372 +- (void)getUnifiedCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
373 +
372 - (void)getTransactionHistoryWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 374 - (void)getTransactionHistoryWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
373 375
374 - (void)getPointsHistoryWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 376 - (void)getPointsHistoryWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
......
...@@ -2566,6 +2566,64 @@ WL_VERSION_IMPLEMENTATION(WL_VERSION) ...@@ -2566,6 +2566,64 @@ WL_VERSION_IMPLEMENTATION(WL_VERSION)
2566 }]; 2566 }];
2567 } 2567 }
2568 2568
2569 +- (void)getUnifiedCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
2570 +{
2571 + NSMutableDictionary* data = [[NSMutableDictionary alloc] init];
2572 + [data setValue:@"retrieve_unified_coupons" forKey:@"action"];
2573 + [data setValue:LANG forKey:@"language"];
2574 +
2575 + NSMutableDictionary* postDictionary = [[NSMutableDictionary alloc] init];
2576 + [postDictionary setValue:data forKey:@"coupon"];
2577 +
2578 +// NSDictionary *postDictionary = @{@"coupon":@{@"action": @"get_user_coupons", @"fetch_data": @[@"transaction",@"communication"]}};
2579 + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:postDictionary options:0 error:NULL];
2580 + [self sendContext8:jsonData successBlock:^(NSDictionary *contextResponse) {
2581 + if (success) {
2582 + success(contextResponse);
2583 + }
2584 + NSLog(@"**************** WARPLY Response *****************" );
2585 + NSLog(@"%@", contextResponse );
2586 + } failureBlock:^(NSError *error) {
2587 + if (failure) {
2588 + NSDictionary* dict = [NSDictionary alloc];
2589 + dict = [error userInfo];
2590 + NSString* errorCode = [dict objectForKey:@"NSLocalizedDescription"];
2591 + if ([errorCode isEqual:@"Request failed: unauthorized (401)"]) {
2592 +
2593 +// NSString* errorDomain = [error domain];
2594 +// NSError *errorToken = [NSError errorWithDomain:errorDomain code:401 userInfo:dict];
2595 +//
2596 +// if (failure) {
2597 +// failure(errorToken);
2598 +// }
2599 +
2600 + [self refreshToken:^(NSDictionary *response) {
2601 + [self sendContext8:jsonData successBlock:^(NSDictionary *contextResponse) {
2602 + if (success) {
2603 + success(contextResponse);
2604 + }
2605 + NSLog(@"**************** WARPLY Response *****************" );
2606 + NSLog(@"%@", contextResponse );
2607 + } failureBlock:^(NSError *error) {
2608 + if (failure) {
2609 + failure(error);
2610 + }
2611 + }];
2612 + } failureBlock:^(NSError *error) {
2613 + if (failure) {
2614 + // [_db executeUpdate:@"DROP TABLE requestVariables"];
2615 + failure(error);
2616 + }
2617 + NSLog(@"Error at token %@", error );
2618 + }];
2619 + } else {
2620 + NSLog(@"Error at get unified coupons %@", error );
2621 + failure(error);
2622 + }
2623 + }
2624 + }];
2625 +}
2626 +
2569 - (void)getTransactionHistoryWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure 2627 - (void)getTransactionHistoryWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
2570 { 2628 {
2571 NSDictionary *postDictionary = @{@"consumer_data": @{@"action": @"get_transaction_history", @"product_detail": @"minimal"}}; 2629 NSDictionary *postDictionary = @{@"consumer_data": @{@"action": @"get_transaction_history", @"product_detail": @"minimal"}};
......
...@@ -17,6 +17,7 @@ public struct GlobalVariables { ...@@ -17,6 +17,7 @@ public struct GlobalVariables {
17 static var couponList: Array<swiftApi.CouponItemModel> = [] 17 static var couponList: Array<swiftApi.CouponItemModel> = []
18 static var oldCouponList: Array<swiftApi.CouponItemModel> = [] 18 static var oldCouponList: Array<swiftApi.CouponItemModel> = []
19 static var couponSetList: Array<swiftApi.CouponSetItemModel> = [] 19 static var couponSetList: Array<swiftApi.CouponSetItemModel> = []
20 + static var unifiedCouponList: Array<swiftApi.UnifiedCouponModel> = []
20 static var loyaltyBadge: swiftApi.LoyaltyBadgeModel = swiftApi.LoyaltyBadgeModel() 21 static var loyaltyBadge: swiftApi.LoyaltyBadgeModel = swiftApi.LoyaltyBadgeModel()
21 static var consumer: swiftApi.ProfileModel? 22 static var consumer: swiftApi.ProfileModel?
22 static var consumerInternal: swiftApi.ProfileModel? 23 static var consumerInternal: swiftApi.ProfileModel?
...@@ -142,6 +143,16 @@ public class swiftApi { ...@@ -142,6 +143,16 @@ public class swiftApi {
142 } 143 }
143 144
144 145
146 + public func setUnifiedCouponList(_ unifiedCoupons: Array<UnifiedCouponModel>) {
147 + GlobalVariables.unifiedCouponList = unifiedCoupons
148 + }
149 +
150 +
151 + public func getUnifiedCouponList() -> Array<UnifiedCouponModel> {
152 + return GlobalVariables.unifiedCouponList
153 + }
154 +
155 +
145 public func startTrackingSteps(_ getStepsCallback: @escaping (_ steps: Int) -> Void) -> Void { 156 public func startTrackingSteps(_ getStepsCallback: @escaping (_ steps: Int) -> Void) -> Void {
146 157
147 if (GlobalVariables.trackingStepsEnabled == false) { 158 if (GlobalVariables.trackingStepsEnabled == false) {
...@@ -6751,5 +6762,158 @@ public class swiftApi { ...@@ -6751,5 +6762,158 @@ public class swiftApi {
6751 } 6762 }
6752 } 6763 }
6753 6764
6765 + public class UnifiedCouponModel {
6766 + private var barcode: String?
6767 + private var code: Int?
6768 + private var coupons: Array<CouponItemModel>?
6769 + private var created: String?
6770 +
6771 + public init() {
6772 + self.barcode = ""
6773 + self.code = 0
6774 + self.coupons = []
6775 + self.created = ""
6776 + }
6777 +
6778 + public init(dictionary: [String: Any]) {
6779 + self.barcode = dictionary["barcode"] as? String? ?? ""
6780 + self.code = dictionary["code"] as? Int? ?? 0
6781 +
6782 + if let couponsData = dictionary["coupons"] as? [[String : Any]?] {
6783 + var couponsArray:Array<CouponItemModel> = []
6784 + for item in couponsData {
6785 + if let itemDictionary = item {
6786 + let tempCoupon = CouponItemModel(dictionary: itemDictionary)
6787 + couponsArray.append(tempCoupon)
6788 + }
6789 + }
6790 + self.coupons = couponsArray
6791 + } else {
6792 + self.coupons = []
6793 + }
6794 +
6795 + // Example "created":"Mon, 03 Apr 2023 15:05:14 GMT"
6796 + let dateString = dictionary["created"] as? String? ?? ""
6797 + let dateFormatter = DateFormatter()
6798 + dateFormatter.locale = Locale(identifier: "en_US_POSSIX")
6799 + dateFormatter.dateFormat = "E, MMM dd yyyy HH:mm:ss"
6800 + if let date = dateFormatter.date(from: dateString ?? "") {
6801 + dateFormatter.dateFormat = "dd/MM/yyyy"
6802 + let resultString = dateFormatter.string(from: date)
6803 + self.created = resultString
6804 + } else {
6805 + self.created = ""
6806 + }
6807 +
6808 + }
6809 +
6810 + public var _barcode: String {
6811 + get { // getter
6812 + return self.barcode ?? ""
6813 + }
6814 + set(newValue) { //setter
6815 + self.barcode = newValue
6816 + }
6817 + }
6818 +
6819 + public var _code: Int {
6820 + get { // getter
6821 + return self.code ?? 0
6822 + }
6823 + set(newValue) { //setter
6824 + self.code = newValue
6825 + }
6826 + }
6827 +
6828 + public var _coupons: Array<CouponItemModel> {
6829 + get { // getter
6830 + return self.coupons ?? []
6831 + }
6832 + set(newValue) { //setter
6833 + self.coupons = newValue
6834 + }
6835 + }
6836 +
6837 + public var _created: String {
6838 + get { // getter
6839 + return self.created ?? ""
6840 + }
6841 + set(newValue) { //setter
6842 + self.created = newValue
6843 + }
6844 + }
6845 + }
6846 +
6847 +
6848 + public func getUnifiedCouponsAsync(_ successCallback: @escaping (_ responseData: Array<UnifiedCouponModel>?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void {
6849 + let instanceOfMyApi = MyApi()
6850 + instanceOfMyApi.getUnifiedCouponsAsync(getUnifiedCallback, failureBlock: getUnifiedFailureCallback)
6851 +
6852 +
6853 + func getUnifiedCallback(_ responseData: [AnyHashable: Any]?) -> Void {
6854 + var unifiedCouponsArray:Array<UnifiedCouponModel> = []
6855 +
6856 + if let responseDataDictionary = responseData as? [String: AnyObject] {
6857 +
6858 + if (responseDataDictionary["status"] as? Int == 1) {
6859 +// let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel()
6860 +// dynatraceEvent._eventName = "custom_success_campaigns_loyalty"
6861 +// dynatraceEvent._parameters = nil
6862 +// SwiftEventBus.post("dynatrace", sender: dynatraceEvent)
6863 +
6864 + if let responseDataResult = responseDataDictionary["result"] as? [String: Any] {
6865 + if let responseDataCoupons = responseDataResult["coupons"] as? [[String : Any]?] {
6866 +
6867 + for item in responseDataCoupons {
6868 + if let itemDictionary = item {
6869 + if let itemDictionaryStauts = itemDictionary["status"] as? String {
6870 + if (itemDictionaryStauts == "active") {
6871 + let tempCampaign = UnifiedCouponModel(dictionary: itemDictionary)
6872 + unifiedCouponsArray.append(tempCampaign)
6873 + }
6874 + }
6875 + }
6876 + }
6877 +
6878 + swiftApi().setUnifiedCouponList(unifiedCouponsArray)
6879 + successCallback(unifiedCouponsArray)
6880 + }
6881 + } else {
6882 + successCallback(nil)
6883 + }
6884 +
6885 + } else {
6886 +// let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel()
6887 +// dynatraceEvent._eventName = "custom_error_campaigns_loyalty"
6888 +// dynatraceEvent._parameters = nil
6889 +// SwiftEventBus.post("dynatrace", sender: dynatraceEvent)
6890 +
6891 + successCallback(nil)
6892 + }
6893 +
6894 + } else {
6895 +// let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel()
6896 +// dynatraceEvent._eventName = "custom_error_campaigns_loyalty"
6897 +// dynatraceEvent._parameters = nil
6898 +// SwiftEventBus.post("dynatrace", sender: dynatraceEvent)
6899 +
6900 + successCallback(nil)
6901 + }
6902 + }
6903 +
6904 + func getUnifiedFailureCallback(_ error: Error?) -> Void {
6905 + print("getUnifiedCouponsAsync error: ")
6906 + print(error)
6907 + print("====================")
6908 +
6909 +// let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel()
6910 +// dynatraceEvent._eventName = "custom_error_campaigns_loyalty"
6911 +// dynatraceEvent._parameters = nil
6912 +// SwiftEventBus.post("dynatrace", sender: dynatraceEvent)
6913 +
6914 + successCallback(nil)
6915 + }
6916 + }
6917 +
6754 6918
6755 } 6919 }
......