Showing
2 changed files
with
277 additions
and
13 deletions
... | @@ -34,6 +34,8 @@ import SwiftEventBus | ... | @@ -34,6 +34,8 @@ import SwiftEventBus |
34 | public var couponset: swiftApi.CouponSetItemModel? | 34 | public var couponset: swiftApi.CouponSetItemModel? |
35 | public var campaign: swiftApi.CampaignItemModel? | 35 | public var campaign: swiftApi.CampaignItemModel? |
36 | 36 | ||
37 | + let merchantList:Array<swiftApi.MerchantModel> = swiftApi().getMerchantList() | ||
38 | + | ||
37 | let spinner = SpinnerViewController() | 39 | let spinner = SpinnerViewController() |
38 | 40 | ||
39 | public override func viewDidLoad() { | 41 | public override func viewDidLoad() { |
... | @@ -214,7 +216,8 @@ import SwiftEventBus | ... | @@ -214,7 +216,8 @@ import SwiftEventBus |
214 | redeemButton.isEnabled = false | 216 | redeemButton.isEnabled = false |
215 | 217 | ||
216 | if (ccms == nil) { | 218 | if (ccms == nil) { |
217 | - swiftApi().redeemCouponSetAsync(uuid: uuid, communication_uuid: communication_uuid, redeemCouponSetCallback, failureCallback: {errorCode in | 219 | + // swiftApi().redeemCouponSetAsync(uuid: uuid, communication_uuid: communication_uuid, redeemCouponSetCallback, failureCallback: {errorCode in |
220 | + swiftApi().redeemCouponSetAsyncInternal(uuid: uuid, communication_uuid: communication_uuid, redeemCouponSetCallback, failureCallback: {errorCode in | ||
218 | self.hideSpinner() | 221 | self.hideSpinner() |
219 | self.redeemButton.isEnabled = true | 222 | self.redeemButton.isEnabled = true |
220 | 223 | ||
... | @@ -229,7 +232,8 @@ import SwiftEventBus | ... | @@ -229,7 +232,8 @@ import SwiftEventBus |
229 | }) | 232 | }) |
230 | } else { | 233 | } else { |
231 | // TODO: MAybe change user_msisdn: profile?._msisdn ?? "" | 234 | // TODO: MAybe change user_msisdn: profile?._msisdn ?? "" |
232 | - swiftApi().redeemCouponSetAsync(uuid: uuid, communication_uuid: communication_uuid, user_msisdn: profile?._msisdn ?? "", businessService: (ccms?._businessService ?? ""), offerName: (ccms?._offerName ?? ""), productType: (ccms?._productType ?? ""), provDuration: (ccms?._provDuration ?? ""), noOfRecurrance: (ccms?._noOfRecurrance ?? ""), price: (ccms?._price ?? ""), discount: (ccms?._discount ?? ""), voiceCategory: (ccms?._voiceCategory ?? ""), dataCategory: (ccms?._dataCategory ?? ""), minsValue: (ccms?._minsValue ?? ""), dataValue: (ccms?._dataValue ?? ""), provStepValueMins: (ccms?._provStepValueMins ?? ""), OfferAudienceLevel: (ccms?._offerAudienceLevel ?? ""), UACIOfferTrackingCode: (ccms?._uaciOfferTrackingCode ?? ""), OFFERCODE1: (ccms?._offerCode1 ?? ""), SCORE: (ccms?._score ?? ""), ZONE: (ccms?._zone ?? ""), WAVE: (ccms?._wave ?? ""), VALIDITY: (ccms?._validity ?? ""), TREATMENT_CODE: (ccms?._treatmentCode ?? ""), ccms_session_id: (ccms?._sessionId ?? ""), redeemCouponSetCallback, failureCallback: {errorCode in | 235 | + // swiftApi().redeemCouponSetAsync(uuid: uuid, communication_uuid: communication_uuid, user_msisdn: profile?._msisdn ?? "", businessService: (ccms?._businessService ?? ""), offerName: (ccms?._offerName ?? ""), productType: (ccms?._productType ?? ""), provDuration: (ccms?._provDuration ?? ""), noOfRecurrance: (ccms?._noOfRecurrance ?? ""), price: (ccms?._price ?? ""), discount: (ccms?._discount ?? ""), voiceCategory: (ccms?._voiceCategory ?? ""), dataCategory: (ccms?._dataCategory ?? ""), minsValue: (ccms?._minsValue ?? ""), dataValue: (ccms?._dataValue ?? ""), provStepValueMins: (ccms?._provStepValueMins ?? ""), OfferAudienceLevel: (ccms?._offerAudienceLevel ?? ""), UACIOfferTrackingCode: (ccms?._uaciOfferTrackingCode ?? ""), OFFERCODE1: (ccms?._offerCode1 ?? ""), SCORE: (ccms?._score ?? ""), ZONE: (ccms?._zone ?? ""), WAVE: (ccms?._wave ?? ""), VALIDITY: (ccms?._validity ?? ""), TREATMENT_CODE: (ccms?._treatmentCode ?? ""), ccms_session_id: (ccms?._sessionId ?? ""), redeemCouponSetCallback, failureCallback: {errorCode in |
236 | + swiftApi().redeemCouponSetAsyncInternal(uuid: uuid, communication_uuid: communication_uuid, user_msisdn: profile?._msisdn ?? "", businessService: (ccms?._businessService ?? ""), offerName: (ccms?._offerName ?? ""), productType: (ccms?._productType ?? ""), provDuration: (ccms?._provDuration ?? ""), noOfRecurrance: (ccms?._noOfRecurrance ?? ""), price: (ccms?._price ?? ""), discount: (ccms?._discount ?? ""), voiceCategory: (ccms?._voiceCategory ?? ""), dataCategory: (ccms?._dataCategory ?? ""), minsValue: (ccms?._minsValue ?? ""), dataValue: (ccms?._dataValue ?? ""), provStepValueMins: (ccms?._provStepValueMins ?? ""), OfferAudienceLevel: (ccms?._offerAudienceLevel ?? ""), UACIOfferTrackingCode: (ccms?._uaciOfferTrackingCode ?? ""), OFFERCODE1: (ccms?._offerCode1 ?? ""), SCORE: (ccms?._score ?? ""), ZONE: (ccms?._zone ?? ""), WAVE: (ccms?._wave ?? ""), VALIDITY: (ccms?._validity ?? ""), TREATMENT_CODE: (ccms?._treatmentCode ?? ""), ccms_session_id: (ccms?._sessionId ?? ""), redeemCouponSetCallback, failureCallback: {errorCode in | ||
233 | self.hideSpinner() | 237 | self.hideSpinner() |
234 | self.redeemButton.isEnabled = true | 238 | self.redeemButton.isEnabled = true |
235 | 239 | ||
... | @@ -245,7 +249,8 @@ import SwiftEventBus | ... | @@ -245,7 +249,8 @@ import SwiftEventBus |
245 | } | 249 | } |
246 | } | 250 | } |
247 | 251 | ||
248 | - func redeemCouponSetCallback (_ response: swiftApi.GenericResponseModel?) -> Void { | 252 | + // func redeemCouponSetCallback (_ response: swiftApi.GenericResponseModel?) -> Void { |
253 | + func redeemCouponSetCallback (_ response: swiftApi.RedeemCouponSetResponseModel?) -> Void { | ||
249 | hideSpinner() | 254 | hideSpinner() |
250 | self.redeemButton.isEnabled = true | 255 | self.redeemButton.isEnabled = true |
251 | 256 | ||
... | @@ -267,27 +272,62 @@ import SwiftEventBus | ... | @@ -267,27 +272,62 @@ import SwiftEventBus |
267 | 272 | ||
268 | self.showSuccessDialog("Επιτυχής ενεργοποίηση","Το κουπόνι σου έχει ενεργοποιηθεί και βρίσκεται στην ενότητα My Rewards.") | 273 | self.showSuccessDialog("Επιτυχής ενεργοποίηση","Το κουπόνι σου έχει ενεργοποιηθεί και βρίσκεται στην ενότητα My Rewards.") |
269 | 274 | ||
270 | - swiftApi().getCouponsAsync(getCouponsCallback, failureCallback: {errorCode in }) | 275 | + /* OLD Addition start */ |
271 | - swiftApi().getCampaignsAsyncNew(language: "en", filters: [String : Any](), getCampaignsCallback, failureCallback: {errorCode in }) | 276 | +// swiftApi().getCouponsAsync(getCouponsCallback, failureCallback: {errorCode in }) |
277 | +// swiftApi().getCampaignsAsyncNew(language: "en", filters: [String : Any](), getCampaignsCallback, failureCallback: {errorCode in }) | ||
278 | +// | ||
279 | +// func getCouponsCallback (_ couponsData: Array<swiftApi.CouponItemModel>?) -> Void { | ||
280 | +// if (couponsData != nil) { | ||
281 | +// | ||
282 | +// DispatchQueue.main.async { | ||
283 | +// SwiftEventBus.post("coupons_fetched") | ||
284 | +// } | ||
285 | +// } else { | ||
286 | +// } | ||
287 | +// } | ||
288 | +// | ||
289 | +// func getCampaignsCallback (_ campaignsData: Array<swiftApi.CampaignItemModel>?) -> Void { | ||
290 | +// if (campaignsData != nil) { | ||
291 | +// DispatchQueue.main.async { | ||
292 | +// SwiftEventBus.post("campaigns_retrieved") | ||
293 | +// } | ||
294 | +// } else { | ||
295 | +// } | ||
296 | +// } | ||
297 | + /* OLD Addition end */ | ||
272 | 298 | ||
273 | - func getCouponsCallback (_ couponsData: Array<swiftApi.CouponItemModel>?) -> Void { | 299 | + /* New Addition start */ |
274 | - if (couponsData != nil) { | 300 | + if let newCoupon = response?.getCoupon { |
301 | + newCoupon.status = 1 | ||
275 | 302 | ||
276 | - DispatchQueue.main.async { | 303 | + if let couponsetData = self.couponset { |
277 | - SwiftEventBus.post("coupons_fetched") | 304 | + newCoupon.setCouponSetData(couponsetData) |
305 | + | ||
306 | + for merchant in self.merchantList { | ||
307 | + if (merchant._uuid == couponsetData.merchant_uuid) { | ||
308 | + newCoupon.merchant_details = merchant | ||
309 | + break; | ||
278 | } | 310 | } |
279 | - } else { | ||
280 | } | 311 | } |
281 | } | 312 | } |
282 | 313 | ||
314 | + swiftApi().addCouponItem(newCoupon: newCoupon) | ||
315 | + SwiftEventBus.post("coupons_fetched") | ||
316 | + | ||
317 | + if let tempCampaign = self.campaign { | ||
318 | + swiftApi().removeCampaignItem(campaignArg: tempCampaign) | ||
319 | + swiftApi().getCampaignsAsyncNewInternal(getCampaignsCallback, failureCallback: {errorCode in}) | ||
320 | + } | ||
321 | + | ||
283 | func getCampaignsCallback (_ campaignsData: Array<swiftApi.CampaignItemModel>?) -> Void { | 322 | func getCampaignsCallback (_ campaignsData: Array<swiftApi.CampaignItemModel>?) -> Void { |
284 | if (campaignsData != nil) { | 323 | if (campaignsData != nil) { |
285 | DispatchQueue.main.async { | 324 | DispatchQueue.main.async { |
286 | SwiftEventBus.post("campaigns_retrieved") | 325 | SwiftEventBus.post("campaigns_retrieved") |
287 | } | 326 | } |
288 | - } else { | ||
289 | } | 327 | } |
290 | } | 328 | } |
329 | + } | ||
330 | + /* New Addition end */ | ||
291 | 331 | ||
292 | } else if (response?.getStatus == 3) { | 332 | } else if (response?.getStatus == 3) { |
293 | let firebaseEvent = swiftApi.LoyaltySDKFirebaseEventModel() | 333 | let firebaseEvent = swiftApi.LoyaltySDKFirebaseEventModel() | ... | ... |
... | @@ -836,7 +836,7 @@ public class swiftApi { | ... | @@ -836,7 +836,7 @@ public class swiftApi { |
836 | public let coupon: String? | 836 | public let coupon: String? |
837 | public let category: String? | 837 | public let category: String? |
838 | public let barcode: String? | 838 | public let barcode: String? |
839 | - public let status: Int? | 839 | + public var status: Int? |
840 | public let transaction_uuid: String? | 840 | public let transaction_uuid: String? |
841 | public let redeemed: String? | 841 | public let redeemed: String? |
842 | public let redeemed_date: Date? | 842 | public let redeemed_date: Date? |
... | @@ -849,7 +849,7 @@ public class swiftApi { | ... | @@ -849,7 +849,7 @@ public class swiftApi { |
849 | public let terms: String? | 849 | public let terms: String? |
850 | 850 | ||
851 | // Universal Coupons | 851 | // Universal Coupons |
852 | - public let merchant_details: MerchantModel? | 852 | + public var merchant_details: MerchantModel? |
853 | 853 | ||
854 | 854 | ||
855 | public init(dictionary: [String: Any]) { | 855 | public init(dictionary: [String: Any]) { |
... | @@ -5208,6 +5208,53 @@ public class swiftApi { | ... | @@ -5208,6 +5208,53 @@ public class swiftApi { |
5208 | } | 5208 | } |
5209 | } | 5209 | } |
5210 | 5210 | ||
5211 | + /* | ||
5212 | + { | ||
5213 | + msg = Retrieved; | ||
5214 | + result = { | ||
5215 | + coupon = WGP87TLESUNU; | ||
5216 | + expiration = "2024-12-31 11:59:00"; | ||
5217 | + }; | ||
5218 | + status = 1; | ||
5219 | + "trace_id" = "Root=1-6723705c-0eaecd6f7e9870fb0f56479b"; | ||
5220 | + } | ||
5221 | + */ | ||
5222 | + public class RedeemCouponSetResponseModel { | ||
5223 | + private var coupon: CouponItemModel? | ||
5224 | + private var status: Int? | ||
5225 | + private var msg: String? | ||
5226 | + | ||
5227 | + | ||
5228 | + init(dictionary: [String: Any]) { | ||
5229 | + self.status = dictionary["status"] as? Int? ?? -1 | ||
5230 | + self.msg = dictionary["msg"] as? String? ?? "" | ||
5231 | + if let couponDictionary = dictionary["result"] as? [String : Any] { | ||
5232 | + let tempCoupon = CouponItemModel(dictionary: couponDictionary) | ||
5233 | + self.coupon = tempCoupon | ||
5234 | + } else { | ||
5235 | + self.coupon = nil | ||
5236 | + } | ||
5237 | + } | ||
5238 | + | ||
5239 | + public var getCoupon: CouponItemModel? { | ||
5240 | + get { // getter | ||
5241 | + return self.coupon | ||
5242 | + } | ||
5243 | + } | ||
5244 | + | ||
5245 | + public var getStatus: Int { | ||
5246 | + get { // getter | ||
5247 | + return self.status ?? -1 | ||
5248 | + } | ||
5249 | + } | ||
5250 | + | ||
5251 | + public var getMsg: String { | ||
5252 | + get { // getter | ||
5253 | + return self.msg ?? "" | ||
5254 | + } | ||
5255 | + } | ||
5256 | + } | ||
5257 | + | ||
5211 | public func redeemCouponSetAsync(uuid: String, communication_uuid: String, _ redeemCouponSetCallback: @escaping (_ responseData: GenericResponseModel?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { | 5258 | public func redeemCouponSetAsync(uuid: String, communication_uuid: String, _ redeemCouponSetCallback: @escaping (_ responseData: GenericResponseModel?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { |
5212 | 5259 | ||
5213 | let instanceOfMyApi = MyApi() | 5260 | let instanceOfMyApi = MyApi() |
... | @@ -5279,6 +5326,77 @@ public class swiftApi { | ... | @@ -5279,6 +5326,77 @@ public class swiftApi { |
5279 | } | 5326 | } |
5280 | } | 5327 | } |
5281 | 5328 | ||
5329 | + public func redeemCouponSetAsyncInternal(uuid: String, communication_uuid: String, _ redeemCouponSetCallback: @escaping (_ responseData: RedeemCouponSetResponseModel?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { | ||
5330 | + | ||
5331 | + let instanceOfMyApi = MyApi() | ||
5332 | + instanceOfMyApi.redeemCouponSetAsync(uuid, communication_uuid, requestCallback, failureBlock: requestFailureCallback) | ||
5333 | + | ||
5334 | + func requestCallback(_ responseData: [AnyHashable: Any]?) -> Void { | ||
5335 | + | ||
5336 | + if let responseDataDictionary = responseData as? [String: Any] { | ||
5337 | + | ||
5338 | + let tempResponse = RedeemCouponSetResponseModel(dictionary: responseDataDictionary) | ||
5339 | + | ||
5340 | + if (tempResponse != nil) { | ||
5341 | + DispatchQueue.main.async { | ||
5342 | + if (tempResponse.getStatus == 1) { | ||
5343 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
5344 | + dynatraceEvent._eventName = "custom_success_retrieve_coupon_loyalty" | ||
5345 | + dynatraceEvent._parameters = nil | ||
5346 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
5347 | + | ||
5348 | + } else { | ||
5349 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
5350 | + dynatraceEvent._eventName = "custom_error_retrieve_coupon_loyalty" | ||
5351 | + dynatraceEvent._parameters = nil | ||
5352 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
5353 | + | ||
5354 | + } | ||
5355 | + } | ||
5356 | + } else { | ||
5357 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
5358 | + dynatraceEvent._eventName = "custom_error_retrieve_coupon_loyalty" | ||
5359 | + dynatraceEvent._parameters = nil | ||
5360 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
5361 | + } | ||
5362 | + | ||
5363 | + redeemCouponSetCallback(tempResponse); | ||
5364 | + | ||
5365 | + } else { | ||
5366 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
5367 | + dynatraceEvent._eventName = "custom_error_retrieve_coupon_loyalty" | ||
5368 | + dynatraceEvent._parameters = nil | ||
5369 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
5370 | + | ||
5371 | + redeemCouponSetCallback(nil) | ||
5372 | + } | ||
5373 | + | ||
5374 | + } | ||
5375 | + | ||
5376 | + func requestFailureCallback(_ error: Error?) -> Void { | ||
5377 | + print("redeemCouponSet error: ") | ||
5378 | + print(error) | ||
5379 | + print("====================") | ||
5380 | + | ||
5381 | + let dynatraceEvent = swiftApi.LoyaltySDKDynatraceEventModel() | ||
5382 | + dynatraceEvent._eventName = "custom_error_retrieve_coupon_loyalty" | ||
5383 | + dynatraceEvent._parameters = nil | ||
5384 | + SwiftEventBus.post("dynatrace", sender: dynatraceEvent) | ||
5385 | + | ||
5386 | + if let error = error as? NSError { | ||
5387 | +// if (error.code == 401) { | ||
5388 | +// let sessionEvent = swiftApi.LoyaltySDKSessionExpiredEventModel() | ||
5389 | +// sessionEvent._sessionExpired = true | ||
5390 | +// SwiftEventBus.post("sdk_session_expired", sender: sessionEvent) | ||
5391 | +// } | ||
5392 | + | ||
5393 | + failureCallback(error.code) | ||
5394 | + } else { | ||
5395 | + failureCallback(-1) | ||
5396 | + } | ||
5397 | + } | ||
5398 | + } | ||
5399 | + | ||
5282 | 5400 | ||
5283 | public func redeemCouponSetAsync(uuid: String, communication_uuid: String, user_msisdn: String, businessService: String, offerName: String, productType: String, provDuration: String, noOfRecurrance: String, price: String, discount: String, voiceCategory: String, dataCategory: String, minsValue: String, dataValue: String, provStepValueMins: String, OfferAudienceLevel: String, UACIOfferTrackingCode: String, OFFERCODE1: String, SCORE: String, ZONE: String, WAVE: String, VALIDITY: String, TREATMENT_CODE: String, ccms_session_id: String, _ redeemCouponSetCallback: @escaping (_ responseData: GenericResponseModel?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { | 5401 | public func redeemCouponSetAsync(uuid: String, communication_uuid: String, user_msisdn: String, businessService: String, offerName: String, productType: String, provDuration: String, noOfRecurrance: String, price: String, discount: String, voiceCategory: String, dataCategory: String, minsValue: String, dataValue: String, provStepValueMins: String, OfferAudienceLevel: String, UACIOfferTrackingCode: String, OFFERCODE1: String, SCORE: String, ZONE: String, WAVE: String, VALIDITY: String, TREATMENT_CODE: String, ccms_session_id: String, _ redeemCouponSetCallback: @escaping (_ responseData: GenericResponseModel?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { |
5284 | 5402 | ||
... | @@ -5318,6 +5436,44 @@ public class swiftApi { | ... | @@ -5318,6 +5436,44 @@ public class swiftApi { |
5318 | } | 5436 | } |
5319 | } | 5437 | } |
5320 | 5438 | ||
5439 | + public func redeemCouponSetAsyncInternal(uuid: String, communication_uuid: String, user_msisdn: String, businessService: String, offerName: String, productType: String, provDuration: String, noOfRecurrance: String, price: String, discount: String, voiceCategory: String, dataCategory: String, minsValue: String, dataValue: String, provStepValueMins: String, OfferAudienceLevel: String, UACIOfferTrackingCode: String, OFFERCODE1: String, SCORE: String, ZONE: String, WAVE: String, VALIDITY: String, TREATMENT_CODE: String, ccms_session_id: String, _ redeemCouponSetCallback: @escaping (_ responseData: RedeemCouponSetResponseModel?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { | ||
5440 | + | ||
5441 | + let instanceOfMyApi = MyApi() | ||
5442 | + instanceOfMyApi.redeemCouponSetAsync(uuid, communication_uuid, user_msisdn, businessService, offerName, productType, provDuration, noOfRecurrance, price, discount, voiceCategory, dataCategory, minsValue, dataValue, provStepValueMins, OfferAudienceLevel, UACIOfferTrackingCode, OFFERCODE1, SCORE, ZONE, WAVE, VALIDITY, TREATMENT_CODE, ccms_session_id, requestCallback, failureBlock: requestFailureCallback) | ||
5443 | + | ||
5444 | + func requestCallback(_ responseData: [AnyHashable: Any]?) -> Void { | ||
5445 | + | ||
5446 | + if let responseDataDictionary = responseData as? [String: Any] { | ||
5447 | + | ||
5448 | + let tempResponse = RedeemCouponSetResponseModel(dictionary: responseDataDictionary) | ||
5449 | + | ||
5450 | + redeemCouponSetCallback(tempResponse); | ||
5451 | + | ||
5452 | + } else { | ||
5453 | + redeemCouponSetCallback(nil) | ||
5454 | + } | ||
5455 | + | ||
5456 | + } | ||
5457 | + | ||
5458 | + func requestFailureCallback(_ error: Error?) -> Void { | ||
5459 | + print("redeemCouponSet error: ") | ||
5460 | + print(error) | ||
5461 | + print("====================") | ||
5462 | + | ||
5463 | + if let error = error as? NSError { | ||
5464 | +// if (error.code == 401) { | ||
5465 | +// let sessionEvent = swiftApi.LoyaltySDKSessionExpiredEventModel() | ||
5466 | +// sessionEvent._sessionExpired = true | ||
5467 | +// SwiftEventBus.post("sdk_session_expired", sender: sessionEvent) | ||
5468 | +// } | ||
5469 | + | ||
5470 | + failureCallback(error.code) | ||
5471 | + } else { | ||
5472 | + failureCallback(-1) | ||
5473 | + } | ||
5474 | + } | ||
5475 | + } | ||
5476 | + | ||
5321 | 5477 | ||
5322 | public func setUniqueCampaignList(_ campaigns: Array<CampaignItemModel>) -> Void { | 5478 | public func setUniqueCampaignList(_ campaigns: Array<CampaignItemModel>) -> Void { |
5323 | // let userTag = self.getUserTag() | 5479 | // let userTag = self.getUserTag() |
... | @@ -9096,5 +9252,73 @@ public class swiftApi { | ... | @@ -9096,5 +9252,73 @@ public class swiftApi { |
9096 | } | 9252 | } |
9097 | } | 9253 | } |
9098 | 9254 | ||
9255 | + public func addCouponItem(newCoupon: CouponItemModel) { | ||
9256 | + var tempCouponList = getCouponList() | ||
9257 | + tempCouponList.append(newCoupon) | ||
9258 | + swiftApi().setCouponList(tempCouponList) | ||
9259 | + } | ||
9260 | + | ||
9261 | + public func removeCampaignItem(campaignArg: CampaignItemModel) { | ||
9262 | + let allCampaigns = swiftApi().getAllCampaignList().filter { $0.session_uuid != campaignArg.session_uuid } | ||
9263 | + swiftApi().setUniqueCampaignList(allCampaigns) | ||
9264 | + | ||
9265 | + let carouselArray = swiftApi().getCarouselList().filter { $0.session_uuid != campaignArg.session_uuid } | ||
9266 | + swiftApi().setCarouselList(carouselArray) | ||
9267 | + } | ||
9268 | + | ||
9269 | + public func getCampaignsAsyncNewInternal(_ getCampaignsCallback: @escaping (_ campaignsData: Array<CampaignItemModel>?) -> Void, failureCallback: @escaping (_ errorCode: Int) -> Void) -> Void { | ||
9270 | + var campaignsArray = swiftApi().getAllCampaignList() | ||
9271 | + swiftApi().getAvailableCouponsAsync({responseDataAvailability in | ||
9272 | + if let availabilityData = responseDataAvailability { | ||
9273 | + for tempCampaign in campaignsArray { | ||
9274 | + for item in availabilityData { | ||
9275 | + if (tempCampaign._couponset == item.key) { | ||
9276 | + tempCampaign._coupon_availability = item.value as? Int ?? 0 | ||
9277 | + } | ||
9278 | + } | ||
9279 | + } | ||
9280 | + } | ||
9281 | + | ||
9282 | + let parsedCampagins = parseCampaigns() | ||
9283 | + getCampaignsCallback(parsedCampagins); | ||
9284 | + | ||
9285 | + }, failureCallback: {errorCode in | ||
9286 | + let parsedCampagins = parseCampaigns() | ||
9287 | + getCampaignsCallback(parsedCampagins); | ||
9288 | + }) | ||
9289 | + | ||
9290 | + func parseCampaigns() -> Array<CampaignItemModel> { | ||
9291 | + campaignsArray = campaignsArray.filter { $0._coupon_availability != 0 } | ||
9292 | + | ||
9293 | + swiftApi().setUniqueCampaignList(campaignsArray) | ||
9294 | + | ||
9295 | + let carouselArray:Array<CampaignItemModel> = campaignsArray.filter { | ||
9296 | + let tempCampaign = $0 | ||
9297 | + let isCarouselItem = (tempCampaign._carousel != nil) && (tempCampaign._carousel == "true") | ||
9298 | + | ||
9299 | + return (isCarouselItem) | ||
9300 | + } | ||
9301 | + swiftApi().setCarouselList(carouselArray) | ||
9302 | + | ||
9303 | + var filteredCampaigns = campaignsArray.filter { | ||
9304 | + let tempCampaign = $0 | ||
9305 | + let isCcmsOffer = (tempCampaign.ccms_offer != nil) && (tempCampaign.ccms_offer != "") && (tempCampaign.ccms_offer == "true") | ||
9306 | + let isTelco = (tempCampaign._type != nil && tempCampaign._type == "telco") | ||
9307 | + | ||
9308 | + return (!(isCcmsOffer || isTelco)) | ||
9309 | + } | ||
9310 | + | ||
9311 | + // if (swiftApi().getConsumerInternal()?._answered == true) { | ||
9312 | + filteredCampaigns = filteredCampaigns.filter { $0.offer_category != "questionnaire" } | ||
9313 | + // } | ||
9314 | + | ||
9315 | + let sortedCampaigns = filteredCampaigns.sorted { | ||
9316 | + ($0._sorting ?? 0) < ($1._sorting ?? 0) | ||
9317 | + } | ||
9318 | + | ||
9319 | + return sortedCampaigns | ||
9320 | + } | ||
9321 | + } | ||
9322 | + | ||
9099 | 9323 | ||
9100 | } | 9324 | } | ... | ... |
-
Please register or login to post a comment