@@ -69,11 +69,11 @@ - (NSURLSessionConfiguration *)configurationWithCachingPolicy:(NSURLRequestCache
6969 return configuration;
7070}
7171
72- - (NSError *)privacyConsentErrorWithRequestType : (NSString *)type {
73- return [NSError errorWithDomain: @" OneSignal Error " code :0 userInfo: @{ @" error " : [NSString stringWithFormat: @" Attempted to perform an HTTP request (%@ ) before the user provided privacy consent." , type]} ];
72+ - (OneSignalClientError *)privacyConsentErrorWithRequestType : (NSString *)type {
73+ return [[OneSignalClientError alloc ] initWithCode :0 message: [NSString stringWithFormat: @" Attempted to perform an HTTP request (%@ ) before the user provided privacy consent." , type] responseHeaders: nil response: nil underlyingError: nil ];
7474}
7575
76- - (void )executeRequest : (OneSignalRequest *)request onSuccess : (OSResultSuccessBlock)successBlock onFailure : (OSFailureBlock )failureBlock {
76+ - (void )executeRequest : (OneSignalRequest *)request onSuccess : (OSResultSuccessBlock)successBlock onFailure : (OSClientFailureBlock )failureBlock {
7777 // If privacy consent is required but not yet given, any non-GET request should be blocked.
7878 if (request.method != GET && [OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName: nil ]) {
7979 [OneSignalLog onesignalLog: ONE_S_LL_ERROR message: @" Attempted to perform an HTTP request (%@ ) before the user provided privacy consent." ];
@@ -86,7 +86,7 @@ - (void)executeRequest:(OneSignalRequest *)request onSuccess:(OSResultSuccessBlo
8686
8787 if (request.dataRequest ) {
8888 if (failureBlock) {
89- failureBlock ([NSError errorWithDomain: @" onesignal " code :0 userInfo: @{ @" error " : [NSString stringWithFormat: @" Attempted to execute a data-only API request (%@ ) using OneSignalClient's executeRequest: method, which only accepts JSON-based API requests" , NSStringFromClass (request.class)]} ]);
89+ failureBlock ([[OneSignalClientError alloc ] initWithCode :0 message: [NSString stringWithFormat: @" Attempted to execute a data-only API request (%@ ) using OneSignalClient's executeRequest: method, which only accepts JSON-based API requests" , NSStringFromClass (request.class)] responseHeaders: nil response: nil underlyingError: nil ]);
9090 }
9191
9292 return ;
@@ -112,13 +112,13 @@ - (void)executeRequest:(OneSignalRequest *)request onSuccess:(OSResultSuccessBlo
112112 [task resume ];
113113}
114114
115- - (void )handleMissingAppIdError : (OSFailureBlock )failureBlock withRequest : (OneSignalRequest *)request {
115+ - (void )handleMissingAppIdError : (OSClientFailureBlock )failureBlock withRequest : (OneSignalRequest *)request {
116116 NSString *errorDescription = [NSString stringWithFormat: @" HTTP Request (%@ ) must contain app_id parameter" , NSStringFromClass ([request class ])];
117117
118118 [OneSignalLog onesignalLog: ONE_S_LL_ERROR message: errorDescription];
119119
120120 if (failureBlock)
121- failureBlock ([NSError errorWithDomain: @" OneSignalError " code : -1 userInfo: @{ @" error " : errorDescription} ]);
121+ failureBlock ([[OneSignalClientError alloc ] initWithCode : -1 message: errorDescription responseHeaders: nil response: nil underlyingError: nil ]);
122122}
123123
124124- (BOOL )validRequest : (OneSignalRequest *)request {
@@ -147,7 +147,7 @@ - (void)reattemptRequest:(OSReattemptRequest *)reattempt {
147147 [self executeRequest: reattempt.request onSuccess: reattempt.successBlock onFailure: reattempt.failureBlock];
148148}
149149
150- - (BOOL )willReattemptRequest : (int )statusCode withRequest : (OneSignalRequest *)request success : (OSResultSuccessBlock)successBlock failure : (OSFailureBlock )failureBlock asyncRequest : (BOOL )async {
150+ - (BOOL )willReattemptRequest : (int )statusCode withRequest : (OneSignalRequest *)request success : (OSResultSuccessBlock)successBlock failure : (OSClientFailureBlock )failureBlock asyncRequest : (BOOL )async {
151151 // in the event that there is no network connection, NSURLSession will return status code 0
152152 if ((statusCode >= 500 || statusCode == 0 ) && request.reattemptCount < MAX_ATTEMPT_COUNT - 1 ) {
153153 OSReattemptRequest *reattempt = [OSReattemptRequest withRequest: request successBlock: successBlock failureBlock: failureBlock];
@@ -193,11 +193,11 @@ - (void)prettyPrintDebugStatementWithRequest:(OneSignalRequest *)request {
193193 [OneSignalLog onesignalLog: ONE_S_LL_VERBOSE message: [NSString stringWithFormat: @" HTTP Request (%@ ) with URL: %@ , with parameters: %@ and headers: %@ " , NSStringFromClass ([request class ]), request.urlRequest.URL.absoluteString, jsonString, request.additionalHeaders]];
194194}
195195
196- - (void )handleJSONNSURLResponse : (NSURLResponse *)response data : (NSData *)data error : (NSError *)error isAsync : (BOOL )async withRequest : (OneSignalRequest *)request onSuccess : (OSResultSuccessBlock)successBlock onFailure : (OSFailureBlock )failureBlock {
196+ - (void )handleJSONNSURLResponse : (NSURLResponse *)response data : (NSData *)data error : (NSError *)error isAsync : (BOOL )async withRequest : (OneSignalRequest *)request onSuccess : (OSResultSuccessBlock)successBlock onFailure : (OSClientFailureBlock )failureBlock {
197197
198198 NSHTTPURLResponse * HTTPResponse = (NSHTTPURLResponse *)response;
199199 NSInteger statusCode = [HTTPResponse statusCode ];
200- NSDictionary *headers = [HTTPResponse allHeaderFields ] ?: @{};
200+ NSDictionary *headers = [HTTPResponse allHeaderFields ]; // can be null
201201 NSError * jsonError = nil ;
202202 NSMutableDictionary * innerJson;
203203
@@ -211,7 +211,7 @@ - (void)handleJSONNSURLResponse:(NSURLResponse*)response data:(NSData*)data erro
211211 [OneSignalLog onesignalLog: ONE_S_LL_VERBOSE message: [NSString stringWithFormat: @" network response (%@ ) with URL %@ : %@ " , NSStringFromClass ([request class ]), request.urlRequest.URL.absoluteString, innerJson]];
212212 if (jsonError) {
213213 if (failureBlock != nil )
214- failureBlock ([NSError errorWithDomain: @" OneSignal Error " code : statusCode userInfo: @{ @" returned " : jsonError, @" headers" : headers} ]); // Add headers to error block
214+ failureBlock ([[OneSignalClientError alloc ] initWithCode : statusCode message: @" Error parsing JSON " responseHeaders: headers response: nil underlyingError: jsonError ]);
215215 return ;
216216 }
217217 }
@@ -228,14 +228,7 @@ - (void)handleJSONNSURLResponse:(NSURLResponse*)response data:(NSData*)data erro
228228 }
229229 } else if (failureBlock != nil ) {
230230 // Make sure to send all the infomation available to the client
231- if (innerJson != nil && error != nil )
232- failureBlock ([NSError errorWithDomain: @" OneSignalError" code: statusCode userInfo: @{@" returned" : innerJson, @" error" : error, @" headers" : headers}]);
233- else if (innerJson != nil )
234- failureBlock ([NSError errorWithDomain: @" OneSignalError" code: statusCode userInfo: @{@" returned" : innerJson, @" headers" : headers}]);
235- else if (error != nil )
236- failureBlock ([NSError errorWithDomain: @" OneSignalError" code: statusCode userInfo: @{@" error" : error, @" headers" : headers}]);
237- else
238- failureBlock ([NSError errorWithDomain: @" OneSignalError" code: statusCode userInfo: @{@" headers" : headers}]);
231+ failureBlock ([[OneSignalClientError alloc ] initWithCode: statusCode message: @" Error encountered making request" responseHeaders: headers response: innerJson underlyingError: error]);
239232 }
240233}
241234
0 commit comments