@@ -69,11 +69,11 @@ - (NSURLSessionConfiguration *)configurationWithCachingPolicy:(NSURLRequestCache
69
69
return configuration;
70
70
}
71
71
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 ];
74
74
}
75
75
76
- - (void )executeRequest : (OneSignalRequest *)request onSuccess : (OSResultSuccessBlock)successBlock onFailure : (OSFailureBlock )failureBlock {
76
+ - (void )executeRequest : (OneSignalRequest *)request onSuccess : (OSResultSuccessBlock)successBlock onFailure : (OSClientFailureBlock )failureBlock {
77
77
// If privacy consent is required but not yet given, any non-GET request should be blocked.
78
78
if (request.method != GET && [OSPrivacyConsentController shouldLogMissingPrivacyConsentErrorWithMethodName: nil ]) {
79
79
[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
86
86
87
87
if (request.dataRequest ) {
88
88
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 ]);
90
90
}
91
91
92
92
return ;
@@ -112,13 +112,13 @@ - (void)executeRequest:(OneSignalRequest *)request onSuccess:(OSResultSuccessBlo
112
112
[task resume ];
113
113
}
114
114
115
- - (void )handleMissingAppIdError : (OSFailureBlock )failureBlock withRequest : (OneSignalRequest *)request {
115
+ - (void )handleMissingAppIdError : (OSClientFailureBlock )failureBlock withRequest : (OneSignalRequest *)request {
116
116
NSString *errorDescription = [NSString stringWithFormat: @" HTTP Request (%@ ) must contain app_id parameter" , NSStringFromClass ([request class ])];
117
117
118
118
[OneSignalLog onesignalLog: ONE_S_LL_ERROR message: errorDescription];
119
119
120
120
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 ]);
122
122
}
123
123
124
124
- (BOOL )validRequest : (OneSignalRequest *)request {
@@ -147,7 +147,7 @@ - (void)reattemptRequest:(OSReattemptRequest *)reattempt {
147
147
[self executeRequest: reattempt.request onSuccess: reattempt.successBlock onFailure: reattempt.failureBlock];
148
148
}
149
149
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 {
151
151
// in the event that there is no network connection, NSURLSession will return status code 0
152
152
if ((statusCode >= 500 || statusCode == 0 ) && request.reattemptCount < MAX_ATTEMPT_COUNT - 1 ) {
153
153
OSReattemptRequest *reattempt = [OSReattemptRequest withRequest: request successBlock: successBlock failureBlock: failureBlock];
@@ -193,11 +193,11 @@ - (void)prettyPrintDebugStatementWithRequest:(OneSignalRequest *)request {
193
193
[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]];
194
194
}
195
195
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 {
197
197
198
198
NSHTTPURLResponse * HTTPResponse = (NSHTTPURLResponse *)response;
199
199
NSInteger statusCode = [HTTPResponse statusCode ];
200
- NSDictionary *headers = [HTTPResponse allHeaderFields ] ?: @{};
200
+ NSDictionary *headers = [HTTPResponse allHeaderFields ]; // can be null
201
201
NSError * jsonError = nil ;
202
202
NSMutableDictionary * innerJson;
203
203
@@ -211,7 +211,7 @@ - (void)handleJSONNSURLResponse:(NSURLResponse*)response data:(NSData*)data erro
211
211
[OneSignalLog onesignalLog: ONE_S_LL_VERBOSE message: [NSString stringWithFormat: @" network response (%@ ) with URL %@ : %@ " , NSStringFromClass ([request class ]), request.urlRequest.URL.absoluteString, innerJson]];
212
212
if (jsonError) {
213
213
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 ]);
215
215
return ;
216
216
}
217
217
}
@@ -228,14 +228,7 @@ - (void)handleJSONNSURLResponse:(NSURLResponse*)response data:(NSData*)data erro
228
228
}
229
229
} else if (failureBlock != nil ) {
230
230
// 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]);
239
232
}
240
233
}
241
234
0 commit comments