Manos Chorianopoulos

add getCoupons async Request

...@@ -75,6 +75,8 @@ ...@@ -75,6 +75,8 @@
75 - (NSDictionary*)redeemCouponWithCoupon:(NSString*)coupon; 75 - (NSDictionary*)redeemCouponWithCoupon:(NSString*)coupon;
76 - (NSDictionary*)validateCouponWithCoupon:(NSString*)coupon; 76 - (NSDictionary*)validateCouponWithCoupon:(NSString*)coupon;
77 - (NSDictionary*)loginCosmoteWithGuid:(NSString*)guid andAppUuid:(NSString*)appUuid andTicket:(NSString*)ticket; 77 - (NSDictionary*)loginCosmoteWithGuid:(NSString*)guid andAppUuid:(NSString*)appUuid andTicket:(NSString*)ticket;
78 +- (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
79 +- (void)getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
78 80
79 @end 81 @end
80 #endif /* MyApi_h */ 82 #endif /* MyApi_h */
......
...@@ -1257,4 +1257,31 @@ CMPedometer *pedometer; ...@@ -1257,4 +1257,31 @@ CMPedometer *pedometer;
1257 } 1257 }
1258 return resp; 1258 return resp;
1259 } 1259 }
1260 +
1261 +- (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
1262 +{
1263 +
1264 + [[Warply sharedService] getCouponsWithSuccessBlock:^(NSDictionary *response) {
1265 + if (success) {
1266 + success(response);
1267 + }
1268 + } failureBlock:^(NSError *error) {
1269 + if (failure) {
1270 + failure(error);
1271 + }
1272 + }];
1273 +}
1274 +
1275 +- (void) getCouponsetsAsync:(NSNumber*) active andVisible:(NSNumber*) visible andUuids:(NSArray*) uuids :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
1276 +{
1277 + [[Warply sharedService] getCouponSetsWithSuccessBlock:active andVisible:visible andUuids:uuids :^(NSDictionary *response) {
1278 + if (success) {
1279 + success(response);
1280 + }
1281 + } failureBlock:^(NSError *error) {
1282 + if (failure) {
1283 + failure(error);
1284 + }
1285 + }];
1286 +}
1260 @end 1287 @end
......
...@@ -220,12 +220,62 @@ public class swiftApi { ...@@ -220,12 +220,62 @@ public class swiftApi {
220 var data: Array<CouponItemModel> = [] 220 var data: Array<CouponItemModel> = []
221 221
222 init() { //initializer method 222 init() { //initializer method
223 +
224 + }
225 +
226 + var getData: Array<CouponItemModel> {
227 + get { // getter
228 + return data.filter({
229 + return $0.status == 1
230 + })
231 + }
232 + }
233 +
234 +
235 + var getOldCoupons: Array<CouponItemModel> {
236 + get { // getter
237 + return data.filter({
238 + return $0.status != 1
239 + })
240 + }
241 + }
242 +
243 +
244 + func getCouponsData(_ getCouponsCallback: @escaping (_ couponsData: Array<CouponItemModel>?) -> Void) -> Void {
245 +
246 + var coupons: [AnyHashable : Any]?
247 + var couponSets: [AnyHashable : Any]?
223 let instanceOfMyApi = MyApi() 248 let instanceOfMyApi = MyApi()
224 - let coupons = instanceOfMyApi.getCoupons()
225 - let couponSets = instanceOfMyApi.getCouponSets(withActive: true, andVisible: true, andUuids: nil)
226 249
227 - var couponsArray:Array<CouponItemModel> = [] 250 + instanceOfMyApi.getCouponsWithSuccessBlock(couponsCallback, failureBlock: (couponsFailureCallback))
251 +
252 + func couponsCallback(_ couponsData: [AnyHashable : Any]?) -> Void {
253 + coupons = couponsData ?? ["":""]
254 +
255 + // On Coupons request success, make CouponSets request
256 + instanceOfMyApi.getCouponsetsAsync(true, andVisible: true, andUuids: nil, couponSetsCallback, failureBlock: couponSetsFailureCallback)
257 + }
258 +
259 + func couponsFailureCallback(_ error: Error?) -> Void {
260 + print("getCoupons error: ")
261 + getCouponsCallback(nil)
262 + }
263 +
264 + func couponSetsCallback(_ couponSetsData: [AnyHashable : Any]?) -> Void {
265 + couponSets = couponSetsData ?? ["":""]
266 +
267 + // On CouponSets request Success, match coupons with couponsets
268 + let tempCoupons = matchCoupons()
269 + getCouponsCallback(tempCoupons)
270 + }
228 271
272 + func couponSetsFailureCallback(_ error: Error?) -> Void {
273 + print("getCouponSets error: ")
274 + getCouponsCallback(nil)
275 + }
276 +
277 + func matchCoupons() -> Array<CouponItemModel> {
278 + var couponsArray:Array<CouponItemModel> = []
229 279
230 if let myCouponsSetsDictionary = couponSets as? [String : AnyObject] { 280 if let myCouponsSetsDictionary = couponSets as? [String : AnyObject] {
231 let couponSetsData = (myCouponsSetsDictionary["MAPP_COUPON"] as! Array<NSMutableDictionary>) 281 let couponSetsData = (myCouponsSetsDictionary["MAPP_COUPON"] as! Array<NSMutableDictionary>)
...@@ -255,36 +305,40 @@ public class swiftApi { ...@@ -255,36 +305,40 @@ public class swiftApi {
255 } 305 }
256 } 306 }
257 307
258 -// if let myCouponsDictionary = coupons as? [String : AnyObject] { 308 + // if let myCouponsDictionary = coupons as? [String : AnyObject] {
259 -// let couponsData = (myCouponsDictionary["result"] as! NSArray) 309 + // let couponsData = (myCouponsDictionary["result"] as! NSArray)
260 -// 310 + //
261 -// 311 + //
262 -// for coupon in couponsData { 312 + // for coupon in couponsData {
263 -// let tempCoupon = CouponItemModel(dictionary: coupon as! [String : Any]) 313 + // let tempCoupon = CouponItemModel(dictionary: coupon as! [String : Any])
264 -// couponsArray.append(tempCoupon) 314 + // couponsArray.append(tempCoupon)
265 -// } 315 + // }
266 -// 316 + //
267 -// } 317 + // }
268 - self.data = couponsArray 318 +
319 + return couponsArray
320 +
269 } 321 }
270 322
271 - var getData: Array<CouponItemModel> {
272 - get { // getter
273 - return data.filter({
274 - return $0.status == 1
275 - })
276 } 323 }
324 +
277 } 325 }
278 326
279 327
280 - var getOldCoupons: Array<CouponItemModel> { 328 + public func filterActiveCoupons(_ coupons: Array<CouponItemModel>) -> Array<CouponItemModel> {
281 - get { // getter 329 + return coupons.filter({
282 - return data.filter({ 330 + return $0.status == 1
283 - return $0.status != 1
284 }) 331 })
285 } 332 }
333 +
334 + public func filterOldCoupons(_ coupons: Array<CouponItemModel>) -> Array<CouponItemModel> {
335 + return coupons.filter({
336 + return $0.status != 1
337 + })
286 } 338 }
287 339
340 + public func getCouponsAsync(_ getCouponsCallback: @escaping (_ couponsData: Array<CouponItemModel>?) -> Void) -> Void {
341 + CouponsDataModel().getCouponsData(getCouponsCallback)
288 } 342 }
289 343
290 public func getCoupons() -> Array<CouponItemModel> { 344 public func getCoupons() -> Array<CouponItemModel> {
......