Expanding success and failure block of most explicit signature for AFJSONRequestOperation to include request and response objects

This commit is contained in:
Mattt Thompson 2011-08-05 11:50:51 -05:00
parent 29de9132d2
commit 63ecf4bc98
2 changed files with 16 additions and 8 deletions

View file

@ -34,8 +34,8 @@
+ (id)operationWithRequest:(NSURLRequest *)urlRequest + (id)operationWithRequest:(NSURLRequest *)urlRequest
acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes
acceptableContentTypes:(NSSet *)acceptableContentTypes acceptableContentTypes:(NSSet *)acceptableContentTypes
success:(void (^)(id JSON))success success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, id JSON))success
failure:(void (^)(NSError *error))failure; failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure;
+ (NSIndexSet *)defaultAcceptableStatusCodes; + (NSIndexSet *)defaultAcceptableStatusCodes;
+ (NSSet *)defaultAcceptableContentTypes; + (NSSet *)defaultAcceptableContentTypes;

View file

@ -37,14 +37,22 @@
success:(void (^)(id JSON))success success:(void (^)(id JSON))success
failure:(void (^)(NSError *error))failure failure:(void (^)(NSError *error))failure
{ {
return [self operationWithRequest:urlRequest acceptableStatusCodes:[self defaultAcceptableStatusCodes] acceptableContentTypes:[self defaultAcceptableContentTypes] success:success failure:failure]; return [self operationWithRequest:urlRequest acceptableStatusCodes:[self defaultAcceptableStatusCodes] acceptableContentTypes:[self defaultAcceptableContentTypes] success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
if (success) {
success(JSON);
}
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
if (failure) {
failure(error);
}
}];
} }
+ (id)operationWithRequest:(NSURLRequest *)urlRequest + (id)operationWithRequest:(NSURLRequest *)urlRequest
acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes
acceptableContentTypes:(NSSet *)acceptableContentTypes acceptableContentTypes:(NSSet *)acceptableContentTypes
success:(void (^)(id JSON))success success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, id JSON))success
failure:(void (^)(NSError *error))failure failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure
{ {
return [self operationWithRequest:urlRequest completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) { return [self operationWithRequest:urlRequest completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) {
BOOL statusCodeAcceptable = [acceptableStatusCodes containsIndex:[response statusCode]]; BOOL statusCodeAcceptable = [acceptableStatusCodes containsIndex:[response statusCode]];
@ -59,7 +67,7 @@
if (error) { if (error) {
if (failure) { if (failure) {
failure(error); failure(request, response, error);
} }
} else { } else {
id JSON = nil; id JSON = nil;
@ -76,11 +84,11 @@
if (error) { if (error) {
if (failure) { if (failure) {
failure(error); failure(request, response, error);
} }
} else { } else {
if (success) { if (success) {
success(JSON); success(request, response, JSON);
} }
} }
} }