From 63ecf4bc98db2fd2548e7fddd4be0364d13bc7c1 Mon Sep 17 00:00:00 2001 From: Mattt Thompson Date: Fri, 5 Aug 2011 11:50:51 -0500 Subject: [PATCH] Expanding success and failure block of most explicit signature for AFJSONRequestOperation to include request and response objects --- AFNetworking/AFJSONRequestOperation.h | 4 ++-- AFNetworking/AFJSONRequestOperation.m | 20 ++++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/AFNetworking/AFJSONRequestOperation.h b/AFNetworking/AFJSONRequestOperation.h index 1495edc..bbb482b 100644 --- a/AFNetworking/AFJSONRequestOperation.h +++ b/AFNetworking/AFJSONRequestOperation.h @@ -34,8 +34,8 @@ + (id)operationWithRequest:(NSURLRequest *)urlRequest acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes acceptableContentTypes:(NSSet *)acceptableContentTypes - success:(void (^)(id JSON))success - failure:(void (^)(NSError *error))failure; + success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, id JSON))success + failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure; + (NSIndexSet *)defaultAcceptableStatusCodes; + (NSSet *)defaultAcceptableContentTypes; diff --git a/AFNetworking/AFJSONRequestOperation.m b/AFNetworking/AFJSONRequestOperation.m index f7c699c..1cb16cd 100644 --- a/AFNetworking/AFJSONRequestOperation.m +++ b/AFNetworking/AFJSONRequestOperation.m @@ -37,14 +37,22 @@ success:(void (^)(id JSON))success 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 acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes acceptableContentTypes:(NSSet *)acceptableContentTypes - success:(void (^)(id JSON))success - failure:(void (^)(NSError *error))failure + success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, id JSON))success + failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure { return [self operationWithRequest:urlRequest completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) { BOOL statusCodeAcceptable = [acceptableStatusCodes containsIndex:[response statusCode]]; @@ -59,7 +67,7 @@ if (error) { if (failure) { - failure(error); + failure(request, response, error); } } else { id JSON = nil; @@ -76,11 +84,11 @@ if (error) { if (failure) { - failure(error); + failure(request, response, error); } } else { if (success) { - success(JSON); + success(request, response, JSON); } } }