Manos Chorianopoulos

add getCosmoteUserAsync request

...@@ -86,6 +86,7 @@ ...@@ -86,6 +86,7 @@
86 - (void)getPacingDetailsAsync:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 86 - (void)getPacingDetailsAsync:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
87 - (void)cosmoteSharingAsync:(NSString*)sharingId :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 87 - (void)cosmoteSharingAsync:(NSString*)sharingId :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
88 - (void)cosmoteRetrieveSharingAsync:(NSString*)sharingId :(NSNumber*)accept :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 88 - (void)cosmoteRetrieveSharingAsync:(NSString*)sharingId :(NSNumber*)accept :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
89 +- (void)getCosmoteUserAsync:(NSString*)guid :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
89 90
90 @end 91 @end
91 #endif /* MyApi_h */ 92 #endif /* MyApi_h */
......
...@@ -1418,4 +1418,17 @@ NSString *VERIFY_URL = @"/partners/cosmote/verify"; ...@@ -1418,4 +1418,17 @@ NSString *VERIFY_URL = @"/partners/cosmote/verify";
1418 }]; 1418 }];
1419 } 1419 }
1420 1420
1421 +- (void)getCosmoteUserAsync:(NSString*)guid :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
1422 +{
1423 + [[Warply sharedService] getCosmoteUserWithSuccessBlock:guid :^(NSDictionary *response) {
1424 + if (success) {
1425 + success(response);
1426 + }
1427 + } failureBlock:^(NSError *error) {
1428 + if (failure) {
1429 + failure(error);
1430 + }
1431 + }];
1432 +}
1433 +
1421 @end 1434 @end
......
...@@ -352,6 +352,8 @@ WL_VERSION_INTERFACE() ...@@ -352,6 +352,8 @@ WL_VERSION_INTERFACE()
352 352
353 - (void)verifyTicketWithSuccessBlock:(NSString*)guid :(NSString*)ticket :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 353 - (void)verifyTicketWithSuccessBlock:(NSString*)guid :(NSString*)ticket :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
354 354
355 +- (void)getCosmoteUserWithSuccessBlock:(NSString*)guid :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
356 +
355 - (void)addAddressWithSuccessBlock:(NSString*)friendlyName :(NSString*)addressName :(NSString*)addressNumber :(NSString*)postalCode :(NSNumber*)floorNumber :(NSString*)doorbel :(NSString*)region :(NSString*)latitude :(NSString*)longitude :(NSString*)notes :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 357 - (void)addAddressWithSuccessBlock:(NSString*)friendlyName :(NSString*)addressName :(NSString*)addressNumber :(NSString*)postalCode :(NSNumber*)floorNumber :(NSString*)doorbel :(NSString*)region :(NSString*)latitude :(NSString*)longitude :(NSString*)notes :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
356 358
357 - (void)getAddressWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure; 359 - (void)getAddressWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure;
......
...@@ -1366,6 +1366,43 @@ WL_VERSION_IMPLEMENTATION(WL_VERSION) ...@@ -1366,6 +1366,43 @@ WL_VERSION_IMPLEMENTATION(WL_VERSION)
1366 }]; 1366 }];
1367 } 1367 }
1368 1368
1369 +- (void)getCosmoteUserWithSuccessBlock:(NSString*)guid :(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
1370 +{
1371 + // NSString* appUuid = [NSString alloc];
1372 + // appUuid = [WLKeychain getStringForKey:@"NBAPPUuid"];
1373 + NSDictionary *postDictionary = @{@"user_identifier" : guid};
1374 + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:postDictionary options:0 error:NULL];
1375 + [self sendContextGetCosmoteUser:jsonData successBlock:^(NSDictionary *contextResponse) {
1376 + NSDictionary* tokens = [NSDictionary alloc];
1377 + tokens = [contextResponse objectForKey:@"result"];
1378 + NSString* clientId = [NSString alloc];
1379 + clientId = [tokens objectForKey:@"client_id"];
1380 + NSString* refreshToken = [NSString alloc];
1381 + refreshToken = [tokens objectForKey:@"refresh_token"];
1382 + NSString* accessToken = [NSString alloc];
1383 + accessToken = [tokens objectForKey:@"access_token"];
1384 + NSString* clientSecret = [NSString alloc];
1385 + clientSecret = [tokens objectForKey:@"client_secret"];
1386 + [_db executeUpdate:@"DROP TABLE requestVariables"];
1387 + [_db executeUpdate:@"CREATE TABLE requestVariables (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, client_id INTEGER, client_secret VARCHAR(255), access_token VARCHAR(255), refresh_token VARCHAR(255))"];
1388 + WL_FMDBLogError
1389 +
1390 + [_db executeUpdate:@"INSERT INTO requestVariables (id, client_id, client_secret, access_token, refresh_token) VALUES (1, ?, ?, ?, ?)", clientId, clientSecret, accessToken, refreshToken];
1391 +
1392 + NSDictionary *successResponse = @{@"result": @"success", @"status":@1};
1393 + if (success) {
1394 + success(successResponse);
1395 + }
1396 + NSLog(@"**************** WARPLY Response *****************" );
1397 + NSLog(@"%@", successResponse );
1398 + } failureBlock:^(NSError *error) {
1399 + if (failure) {
1400 + failure(error);
1401 + }
1402 + NSLog(@"Error at get Cosmote User %@", error );
1403 + }];
1404 +}
1405 +
1369 - (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure 1406 - (void)getCouponsWithSuccessBlock:(void(^)(NSDictionary *response))success failureBlock:(void(^)(NSError *error))failure
1370 { 1407 {
1371 NSDictionary *postDictionary = @{@"coupon":@{@"action": @"get_user_coupons", @"fetch_data": @[@"transaction",@"communication"]}}; 1408 NSDictionary *postDictionary = @{@"coupon":@{@"action": @"get_user_coupons", @"fetch_data": @[@"transaction",@"communication"]}};
...@@ -2617,6 +2654,34 @@ return appIsRegisteredWithWarply; ...@@ -2617,6 +2654,34 @@ return appIsRegisteredWithWarply;
2617 return appIsRegisteredWithWarply; 2654 return appIsRegisteredWithWarply;
2618 } 2655 }
2619 2656
2657 +- (BOOL)sendContextGetCosmoteUser:(NSData*)context
2658 + successBlock:(void (^)(NSDictionary *contextResponse))successBlock
2659 + failureBlock:(void (^)(NSError *error))failureBlock
2660 +{
2661 +BOOL appIsRegisteredWithWarply = [self isRegistrationValid];
2662 +
2663 +if (WL_FEATURE_IS_DISABLED_WITH_KEY(WL_WARPLY_ENABLED))
2664 + return appIsRegisteredWithWarply;
2665 +
2666 +if (appIsRegisteredWithWarply == NO) {
2667 + [_pendingOperationsQueue setSuspended:YES];
2668 + [self registration];
2669 +}
2670 +NSString *path = nil;
2671 +
2672 +NSInvocation *invocation = [self getCosmoteUserRequestInvocationWithType:WLContextRequestTypePost
2673 + data:context
2674 + path:path
2675 + successBlock:[successBlock copy]
2676 + failureBlock:[failureBlock copy]];
2677 +
2678 +
2679 +NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithInvocation:invocation];
2680 +[_pendingOperationsQueue addOperation:operation];
2681 +
2682 +return appIsRegisteredWithWarply;
2683 +}
2684 +
2620 #pragma - Events 2685 #pragma - Events
2621 /////////////////////////////////////////////////////////////////////////////// 2686 ///////////////////////////////////////////////////////////////////////////////
2622 - (void)addEvent:(WLEvent *)event priority:(BOOL)priority 2687 - (void)addEvent:(WLEvent *)event priority:(BOOL)priority
...@@ -3007,6 +3072,28 @@ CGFloat DistanceBetweenTwoPoints(CGPoint point1,CGPoint point2) ...@@ -3007,6 +3072,28 @@ CGFloat DistanceBetweenTwoPoints(CGPoint point1,CGPoint point2)
3007 return invocation; 3072 return invocation;
3008 } 3073 }
3009 3074
3075 +- (NSInvocation *)getCosmoteUserRequestInvocationWithType:(WLContextRequestType)type
3076 + data:(NSData *)context
3077 + path:(NSString *)path
3078 + successBlock:(void (^)(NSDictionary *contextResponse))successBlock
3079 + failureBlock:(void (^)(NSError *error))failureBlock
3080 +{
3081 + void (^ successBlockCopy)(void) = [successBlock copy];
3082 + void (^ failureBlockCopy)(void) = [failureBlock copy];
3083 +
3084 + NSMethodSignature *sgn = [self methodSignatureForSelector:@selector(getCosmoteUserRequestWithType:data:path:successBlock:failureBlock:)];
3085 + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:sgn];
3086 + [invocation setTarget:self];
3087 + [invocation setSelector:@selector(getCosmoteUserRequestWithType:data:path:successBlock:failureBlock:)];
3088 + [invocation setArgument:&type atIndex:2];
3089 + [invocation setArgument:&context atIndex:3];
3090 + [invocation setArgument:&path atIndex:4];
3091 + [invocation setArgument:&successBlockCopy atIndex:5];
3092 + [invocation setArgument:&failureBlockCopy atIndex:6];
3093 + [invocation retainArguments];
3094 + return invocation;
3095 +}
3096 +
3010 - (NSInvocation *)resetPasswordRequestInvocationWithType:(WLContextRequestType)type 3097 - (NSInvocation *)resetPasswordRequestInvocationWithType:(WLContextRequestType)type
3011 data:(NSData *)context 3098 data:(NSData *)context
3012 path:(NSString *)path 3099 path:(NSString *)path
...@@ -4263,6 +4350,103 @@ CGFloat DistanceBetweenTwoPoints(CGPoint point1,CGPoint point2) ...@@ -4263,6 +4350,103 @@ CGFloat DistanceBetweenTwoPoints(CGPoint point1,CGPoint point2)
4263 } 4350 }
4264 } 4351 }
4265 4352
4353 +- (void)getCosmoteUserRequestWithType:(WLContextRequestType)requestType
4354 + data:(NSData*)context
4355 + path:(NSString *)path
4356 + successBlock:(void (^)(id contextResponse))successBlock
4357 + failureBlock:(void (^)(NSError *error))failureBlock
4358 +{
4359 + //Create REQUEST
4360 + NSMutableString *urlString = [NSMutableString stringWithFormat:@"%@/partners/oauth/f83dfde1145e4c2da69793abb2f579af/token", _baseURL]; // /partners/cosmote/verify
4361 + WLLOG(@"[WARP Trace] HTTP URL: %@", urlString);
4362 +
4363 + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:100];
4364 +
4365 + NSDictionary *parameters;
4366 +
4367 + if (context != nil) {
4368 + parameters = [NSJSONSerialization JSONObjectWithData:context options:NSJSONReadingAllowFragments error:NULL];
4369 + }
4370 +
4371 + SuccessResponse successResponse = ^(NSURLSessionDataTask * _Nonnull task, id _Nullable JSON) {
4372 + if (JSON == nil) {
4373 + successBlock(@{@"status": @"0"});
4374 + }
4375 + else {
4376 +
4377 +// NSData *responseData = [NSJSONSerialization dataWithJSONObject:JSON options:NSJSONWritingPrettyPrinted error:NULL];
4378 +// NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
4379 + // WLLOG(@"[WARP Trace] HTTP %@ Response:%@", request.HTTPMethod, responseString);
4380 + WLLOG(@"************ WARP %@ CONTEXT ******************", request.HTTPMethod);
4381 + WLLOG(@"[WARP Trace] HTTP Web Id: %@", _webId);
4382 + WLLOG(@"[WARP Trace] HTTP API Key: %@", _apiKey);
4383 + WLLOG(@"[WARP Trace] HTTP %@ Request URL: %@", request.HTTPMethod, request.URL.absoluteString);
4384 + NSString *contextString = [[NSString alloc] initWithData:context encoding:NSUTF8StringEncoding];
4385 + WLLOG(@"[WARP Trace] HTTP %@ Request Body: %@", request.HTTPMethod, contextString);
4386 + WLLOG(@"*************************************************");
4387 + NSDictionary *contextResponse=JSON;
4388 +
4389 + if (successBlock)
4390 + {
4391 + if ([path length]!=0)
4392 + {
4393 + successBlock([contextResponse valueForKey:path]);
4394 + return;
4395 + }
4396 + successBlock(contextResponse);
4397 + }
4398 +
4399 + }
4400 + };
4401 +
4402 + FailureResponse faliureResponse = ^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
4403 + WLLOG(@"************ WARP %@ CONTEXT ******************", request.HTTPMethod);
4404 + WLLOG(@"[WARP Trace] HTTP Web Id: %@", _webId);
4405 + WLLOG(@"[WARP Trace] HTTP API Key: %@", _apiKey);
4406 + WLLOG(@"[WARP Trace] HTTP %@ Request URL: %@", request.HTTPMethod, request.URL.absoluteString);
4407 + NSString *contextString = [[NSString alloc] initWithData:context encoding:NSUTF8StringEncoding];
4408 +
4409 +
4410 + WLLOG(@"[WARP Trace] HTTP %@ Request Body: %@", request.HTTPMethod, contextString);
4411 + WLLOG(@"[WARP Trace] Error: %@", [error description]);
4412 + WLLOG(@"*************************************************");
4413 + if (failureBlock)
4414 + failureBlock(error);
4415 + };
4416 +// NSString *accessToken = [NSString alloc];
4417 +// if ([_db tableExists:@"requestVariables"] == YES) {
4418 +// FMResultSet *accessTokenSet = [_db executeQuery:@"SELECT access_token FROM requestVariables WHERE id = 1;"];
4419 +// while ([accessTokenSet next]) {
4420 +// accessToken = [[accessTokenSet resultDictionary][@"access_token"] stringValue];
4421 +// }
4422 +// }
4423 + _httpClient.responseSerializer = [AFJSONResponseSerializer serializer];
4424 + _httpClient.requestSerializer = [AFJSONRequestSerializer serializer];
4425 +
4426 + //Set HTTP Headers
4427 + time_t timestamp = (time_t) [[NSDate date] timeIntervalSince1970];
4428 + [_httpClient.requestSerializer setValue:[@"Basic " stringByAppendingString:@"MWlTM0EyNjcxT2Q0a1B5QkIydEs1ZU5uRENhR0NWQjQ6MjI4MjA4ZTliMTQzNGQ2MmIxNGI3ZDAzYjM2ZjUwMzg="] forHTTPHeaderField:@"Authorization"];
4429 + [_httpClient.requestSerializer setValue:_webId forHTTPHeaderField:@"loyalty-web-id"];
4430 + [_httpClient.requestSerializer setValue:[NSString stringWithFormat:@"%lu", timestamp] forHTTPHeaderField:@"loyalty-date"];
4431 + [_httpClient.requestSerializer setValue:[[NSString stringWithFormat:@"%@%lu", _apiKey, timestamp] SHA256Sum] forHTTPHeaderField:@"loyalty-signature"];
4432 + [_httpClient.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
4433 + [_httpClient.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
4434 + [_httpClient.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"User-Agent"];
4435 + [_httpClient.requestSerializer setValue:[NSString stringWithFormat:@"ios:%@", [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"]] forHTTPHeaderField:@"loyalty-bundle-id"];
4436 + [_httpClient.requestSerializer setValue:[[[UIDevice currentDevice] identifierForVendor] UUIDString] forHTTPHeaderField:@"unique-device-id"];
4437 + [_httpClient.requestSerializer setValue:@"apple" forHTTPHeaderField:@"vendor"];
4438 + [_httpClient.requestSerializer setValue:@"platform" forHTTPHeaderField:@"ios"];
4439 + [_httpClient.requestSerializer setValue:@"os_version" forHTTPHeaderField:[[UIDevice currentDevice] systemVersion]];
4440 + if (requestType == WLContextRequestTypePost) {
4441 +// NSDictionary *parameters = [NSJSONSerialization JSONObjectWithData:context options:NSJSONReadingAllowFragments error:NULL];
4442 +
4443 + [_httpClient POST:urlString parameters:parameters progress:nil success:successResponse failure:faliureResponse];
4444 + }
4445 + else {
4446 + [_httpClient GET:urlString parameters:parameters progress:nil success:successResponse failure:faliureResponse];
4447 + }
4448 +}
4449 +
4266 /////////////////////////////////////////////////////////////////////////////// 4450 ///////////////////////////////////////////////////////////////////////////////
4267 - (void)runContextRequestWithType:(WLContextRequestType)requestType 4451 - (void)runContextRequestWithType:(WLContextRequestType)requestType
4268 data:(NSData*)context 4452 data:(NSData*)context
......
...@@ -2819,4 +2819,41 @@ public class swiftApi { ...@@ -2819,4 +2819,41 @@ public class swiftApi {
2819 } 2819 }
2820 } 2820 }
2821 2821
2822 +
2823 + public func getCosmoteUserAsync(guid: String, _ getCosmoteUserCallback: @escaping (_ responseData: GenericResponseModel?) -> Void) -> Void {
2824 +
2825 + let instanceOfMyApi = MyApi()
2826 + instanceOfMyApi.getCosmoteUserAsync(guid, requestCallback, failureBlock: requestFailureCallback)
2827 +
2828 + func requestCallback(_ responseData: [AnyHashable: Any]?) -> Void {
2829 +
2830 + if let responseDataDictionary = responseData as? [String: AnyObject] {
2831 + if (responseDataDictionary["status"] as? Int == 1) {
2832 + if let responseDataDictionary = responseData as? [String: Any] {
2833 +
2834 + let tempResponse = GenericResponseModel(dictionary: responseDataDictionary)
2835 + getCosmoteUserCallback(tempResponse);
2836 +
2837 + } else {
2838 + getCosmoteUserCallback(nil)
2839 + }
2840 +
2841 + } else {
2842 + getCosmoteUserCallback(nil)
2843 + }
2844 +
2845 + } else {
2846 + getCosmoteUserCallback(nil)
2847 + }
2848 +
2849 + }
2850 +
2851 + func requestFailureCallback(_ error: Error?) -> Void {
2852 + print("getCosmoteUser error: ")
2853 + print(error)
2854 + print("====================")
2855 + getCosmoteUserCallback(nil)
2856 + }
2857 + }
2858 +
2822 } 2859 }
......