Advertisement
Guest User

Untitled

a guest
May 6th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #pragma mark - connection managements
  2. -(void)sendRequest:(IMRequestType)requestType withParameters:(NSDictionary*)parameters success:(void (^)(IMRequestType request,id responseObject))sendSuccess failure:(void (^)(IMRequestType request,id error,BOOL isNetwork))sendFail
  3. {
  4.     HTTPRequestType httpType = [IMDataProxy httpRequestTypeFor:requestType];
  5.     if (httpType == HTTPRequestTypePOST) {
  6.         dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  7.         dispatch_async(queue, ^{
  8.             [[IMConManager sharedManager] startPostConnection:requestType withParameters:parameters success:^(IMRequestType request, id responseObject) {
  9.                 BOOL validData = [[IMDataFilter shared] isSuccessResponse:responseObject forRequest:request];
  10.                 if (validData) {
  11.                     [[IMDataProxy shared] handleObject:responseObject forRequest:requestType complete:^{
  12.                         if (sendSuccess != nil) {
  13.                             dispatch_async(dispatch_get_main_queue(), ^{
  14.                                 sendSuccess(requestType,responseObject);
  15.                             });
  16.                         }
  17.                     }];
  18.                 } else if (sendFail != nil) {
  19.                     sendFail(requestType,responseObject,NO);
  20.                 }
  21.             } failure:^(IMRequestType request, NSString *error) {
  22.                 if (sendFail != nil) {
  23.                     sendFail(request,error,YES);
  24.                 }
  25.             }];
  26.         });
  27.     }
  28.     else if (httpType == HTTPRequestTypeGET) {
  29.         [self.requestQueue addOperationWithBlock:^{
  30.             [[IMConManager sharedManager] startGetConnection:requestType withParameters:parameters success:^(IMRequestType request, id responseObject) {
  31.                 BOOL validData = [[IMDataFilter shared] isSuccessResponse:responseObject forRequest:request];
  32.                 if (validData) {
  33.                     [[IMDataProxy shared] handleObject:responseObject forRequest:requestType complete:^{
  34.                         if (sendSuccess != nil) {
  35.                             dispatch_async(dispatch_get_main_queue(), ^{
  36.                                 sendSuccess(requestType,responseObject);
  37.                             });
  38.                         }
  39.                     }];
  40.                 } else if (sendFail != nil) {
  41.                     sendFail(requestType,responseObject,NO);
  42.                 }
  43.             } failure:^(IMRequestType request, NSString *error) {
  44.                 if (sendFail != nil) {
  45.                     sendFail(request,error,YES);
  46.                 }
  47.             }];
  48.         }];
  49.     } else if (httpType == HTTPRequestTypePUT) {
  50.         dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  51.         dispatch_async(queue, ^{
  52.             [[IMConManager sharedManager] startPutConnection:requestType withParameters:parameters success:^(IMRequestType request, id responseObject) {
  53.                 BOOL validData = [[IMDataFilter shared] isSuccessResponse:responseObject forRequest:request];
  54.                 if (validData) {
  55.                     [[IMDataProxy shared] handleObject:responseObject forRequest:requestType complete:^{
  56.                         if (sendSuccess != nil) {
  57.                             dispatch_async(dispatch_get_main_queue(), ^{
  58.                                 sendSuccess(requestType,responseObject);
  59.                             });
  60.                         }
  61.                     }];
  62.                 } else if (sendFail != nil) {
  63.                     sendFail(requestType,responseObject,NO);
  64.                 }
  65.             } failure:^(IMRequestType request, NSString *error) {
  66.                 if (sendFail != nil) {
  67.                     sendFail(request,error,YES);
  68.                 }
  69.             }];
  70.         });
  71.     } else if (httpType == HTTPRequestTypeDELETE) {
  72.         dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  73.         dispatch_async(queue, ^{
  74.             [[IMConManager sharedManager] startDeleteConnection:requestType withParameters:parameters success:^(IMRequestType request, id responseObject) {
  75.                 BOOL validData = [[IMDataFilter shared] isSuccessResponse:responseObject forRequest:request];
  76.                 if (validData) {
  77.                     [[IMDataProxy shared] handleObject:responseObject forRequest:requestType complete:^{
  78.                         if (sendSuccess != nil) {
  79.                             dispatch_async(dispatch_get_main_queue(), ^{
  80.                                 sendSuccess(requestType,responseObject);
  81.                             });
  82.                         }
  83.                     }];
  84.                 } else if (sendFail != nil) {
  85.                     sendFail(requestType,responseObject,NO);
  86.                 }
  87.             } failure:^(IMRequestType request, NSString *error) {
  88.                 if (sendFail != nil) {
  89.                     sendFail(request,error,YES);
  90.                 }
  91.             }];
  92.         });
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement