forked from loafle/openapi-generator-original
added file upload support
This commit is contained in:
parent
c47e553425
commit
0a7e606650
@ -21,18 +21,20 @@
|
|||||||
|
|
||||||
-(NSString*) escapeString:(NSString*) string;
|
-(NSString*) escapeString:(NSString*) string;
|
||||||
|
|
||||||
-(void) dictionary:(NSString*) path
|
-(void) dictionary: (NSString*) path
|
||||||
method:(NSString*) method
|
method: (NSString*) method
|
||||||
queryParams:(NSDictionary*) queryParams
|
queryParams: (NSDictionary*) queryParams
|
||||||
body:(id)body
|
body: (id)body
|
||||||
headerParams:(NSDictionary*) headerParams
|
headerParams: (NSDictionary*) headerParams
|
||||||
completionBlock:(void (^)(NSDictionary*, NSError *))completionBlock;
|
contentType: contentType
|
||||||
|
completionBlock: (void (^)(NSDictionary*, NSError *))completionBlock;
|
||||||
|
|
||||||
-(void) stringWithCompletionBlock:(NSString*) path
|
-(void) stringWithCompletionBlock: (NSString*) path
|
||||||
method:(NSString*) method
|
method: (NSString*) method
|
||||||
queryParams:(NSDictionary*) queryParams
|
queryParams: (NSDictionary*) queryParams
|
||||||
body:(id)body
|
body: (id)body
|
||||||
headerParams:(NSDictionary*) headerParams
|
headerParams: (NSDictionary*) headerParams
|
||||||
completionBlock:(void (^)(NSString*, NSError *))completionBlock;
|
contentType: contentType
|
||||||
|
completionBlock: (void (^)(NSString*, NSError *))completionBlock;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#import "NIKApiInvoker.h"
|
#import "NIKApiInvoker.h"
|
||||||
|
#import "NIKFile.h"
|
||||||
|
|
||||||
@implementation NIKApiInvoker
|
@implementation NIKApiInvoker
|
||||||
|
|
||||||
@ -58,12 +59,13 @@ static NSInteger __LoadingObjectsCount = 0;
|
|||||||
kCFStringEncodingUTF8));
|
kCFStringEncodingUTF8));
|
||||||
}
|
}
|
||||||
|
|
||||||
-(void) dictionary:(NSString*) path
|
-(void) dictionary: (NSString*) path
|
||||||
method:(NSString*) method
|
method: (NSString*) method
|
||||||
queryParams:(NSDictionary*) queryParams
|
queryParams: (NSDictionary*) queryParams
|
||||||
body:(id) body
|
body: (id) body
|
||||||
headerParams:(NSDictionary*) headerParams
|
headerParams: (NSDictionary*) headerParams
|
||||||
completionBlock:(void (^)(NSDictionary*, NSError *))completionBlock
|
contentType: (NSString*) contentType
|
||||||
|
completionBlock: (void (^)(NSDictionary*, NSError *))completionBlock
|
||||||
{
|
{
|
||||||
NSMutableString * requestUrl = [NSMutableString stringWithFormat:@"%@", path];
|
NSMutableString * requestUrl = [NSMutableString stringWithFormat:@"%@", path];
|
||||||
NSString * separator = nil;
|
NSString * separator = nil;
|
||||||
@ -111,6 +113,21 @@ static NSInteger __LoadingObjectsCount = 0;
|
|||||||
data = [NSJSONSerialization dataWithJSONObject:body
|
data = [NSJSONSerialization dataWithJSONObject:body
|
||||||
options:kNilOptions error:&error];
|
options:kNilOptions error:&error];
|
||||||
}
|
}
|
||||||
|
else if ([body isKindOfClass:[NIKFile class]]){
|
||||||
|
NIKFile * file = (NIKFile*) body;
|
||||||
|
|
||||||
|
NSString *boundary = @"Fo0+BAr";
|
||||||
|
contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
|
||||||
|
|
||||||
|
// add the body
|
||||||
|
NSMutableData *postBody = [NSMutableData data];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData:[@"Content-Disposition: form-data; name= \"some_name\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image_file\"; filename=\"%@\"\r\n", file] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n\r\n", file.mimeType] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData: file.data];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
}
|
||||||
else if ([body isKindOfClass:[NSArray class]]){
|
else if ([body isKindOfClass:[NSArray class]]){
|
||||||
data = [NSJSONSerialization dataWithJSONObject:body
|
data = [NSJSONSerialization dataWithJSONObject:body
|
||||||
options:kNilOptions error:&error];
|
options:kNilOptions error:&error];
|
||||||
@ -122,7 +139,7 @@ static NSInteger __LoadingObjectsCount = 0;
|
|||||||
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
|
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
|
||||||
[request setHTTPBody:data];
|
[request setHTTPBody:data];
|
||||||
|
|
||||||
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
|
[request setValue:contentType forHTTPHeaderField:@"Content-Type"];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle caching on GET requests
|
// Handle caching on GET requests
|
||||||
@ -174,12 +191,13 @@ static NSInteger __LoadingObjectsCount = 0;
|
|||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
-(void) stringWithCompletionBlock:(NSString*) path
|
-(void) stringWithCompletionBlock: (NSString*) path
|
||||||
method:(NSString*) method
|
method: (NSString*) method
|
||||||
queryParams:(NSDictionary*) queryParams
|
queryParams: (NSDictionary*) queryParams
|
||||||
body:(id) body
|
body: (id) body
|
||||||
headerParams:(NSDictionary*) headerParams
|
headerParams: (NSDictionary*) headerParams
|
||||||
completionBlock:(void (^)(NSString*, NSError *))completionBlock
|
contentType: (NSString*) contentType
|
||||||
|
completionBlock: (void (^)(NSString*, NSError *))completionBlock
|
||||||
{
|
{
|
||||||
NSMutableString * requestUrl = [NSMutableString stringWithFormat:@"%@", path];
|
NSMutableString * requestUrl = [NSMutableString stringWithFormat:@"%@", path];
|
||||||
NSString * separator = nil;
|
NSString * separator = nil;
|
||||||
@ -227,6 +245,21 @@ static NSInteger __LoadingObjectsCount = 0;
|
|||||||
data = [NSJSONSerialization dataWithJSONObject:body
|
data = [NSJSONSerialization dataWithJSONObject:body
|
||||||
options:kNilOptions error:&error];
|
options:kNilOptions error:&error];
|
||||||
}
|
}
|
||||||
|
else if ([body isKindOfClass:[NIKFile class]]){
|
||||||
|
NIKFile * file = (NIKFile*) body;
|
||||||
|
|
||||||
|
NSString *boundary = @"Fo0+BAr";
|
||||||
|
contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
|
||||||
|
|
||||||
|
// add the body
|
||||||
|
NSMutableData *postBody = [NSMutableData data];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData:[@"Content-Disposition: form-data; name= \"some_name\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image_file\"; filename=\"%@\"\r\n", file] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n\r\n", file.mimeType] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[postBody appendData: file.data];
|
||||||
|
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
}
|
||||||
else if ([body isKindOfClass:[NSArray class]]){
|
else if ([body isKindOfClass:[NSArray class]]){
|
||||||
data = [NSJSONSerialization dataWithJSONObject:body
|
data = [NSJSONSerialization dataWithJSONObject:body
|
||||||
options:kNilOptions error:&error];
|
options:kNilOptions error:&error];
|
||||||
@ -238,7 +271,7 @@ static NSInteger __LoadingObjectsCount = 0;
|
|||||||
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
|
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
|
||||||
[request setHTTPBody:data];
|
[request setHTTPBody:data];
|
||||||
|
|
||||||
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
|
[request setValue:contentType forHTTPHeaderField:@"Content-Type"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,5 +9,4 @@
|
|||||||
|
|
||||||
- (id) initWithValues: (NSString*)input;
|
- (id) initWithValues: (NSString*)input;
|
||||||
-(NSString*) toString;
|
-(NSString*) toString;
|
||||||
@end
|
@end
|
||||||
|
|
@ -1,5 +1,6 @@
|
|||||||
{{#operations}}
|
{{#operations}}
|
||||||
#import "{{classname}}.h"
|
#import "{{classname}}.h"
|
||||||
|
#import "NIKFile.h"
|
||||||
{{#imports}}#import "{{import}}.h"
|
{{#imports}}#import "{{import}}.h"
|
||||||
{{/imports}}
|
{{/imports}}
|
||||||
{{newline}}
|
{{newline}}
|
||||||
@ -48,6 +49,9 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
{{#pathParams}}[requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"{{baseName}}", @"}"]] withString: [_api escapeString:{{paramName}}]];
|
{{#pathParams}}[requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"{{baseName}}", @"}"]] withString: [_api escapeString:{{paramName}}]];
|
||||||
{{/pathParams}}
|
{{/pathParams}}
|
||||||
|
|
||||||
|
NSString* contentType = @"application/json";
|
||||||
|
|
||||||
|
|
||||||
NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
|
NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
|
||||||
{{#queryParams}}if({{paramName}} != nil)
|
{{#queryParams}}if({{paramName}} != nil)
|
||||||
queryParams[@"{{baseName}}"] = {{paramName}};
|
queryParams[@"{{baseName}}"] = {{paramName}};
|
||||||
@ -77,6 +81,10 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
else if([body isKindOfClass:[NSString class]]) {
|
else if([body isKindOfClass:[NSString class]]) {
|
||||||
bodyDictionary = body;
|
bodyDictionary = body;
|
||||||
}
|
}
|
||||||
|
else if([body isKindOfClass: [NIKFile class]]) {
|
||||||
|
contentType = @"form-data";
|
||||||
|
bodyDictionary = body;
|
||||||
|
}
|
||||||
else{
|
else{
|
||||||
NSLog(@"don't know what to do with %@", body);
|
NSLog(@"don't know what to do with %@", body);
|
||||||
}
|
}
|
||||||
@ -97,6 +105,7 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
queryParams: queryParams
|
queryParams: queryParams
|
||||||
body: bodyDictionary
|
body: bodyDictionary
|
||||||
headerParams: headerParams
|
headerParams: headerParams
|
||||||
|
contentType: contentType
|
||||||
completionBlock: ^(NSDictionary *data, NSError *error) {
|
completionBlock: ^(NSDictionary *data, NSError *error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
{{#returnBaseType}}completionBlock(nil, error);{{/returnBaseType}}
|
{{#returnBaseType}}completionBlock(nil, error);{{/returnBaseType}}
|
||||||
@ -138,6 +147,7 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
queryParams:queryParams
|
queryParams:queryParams
|
||||||
body:bodyDictionary
|
body:bodyDictionary
|
||||||
headerParams:headerParams
|
headerParams:headerParams
|
||||||
|
contentType:contentType
|
||||||
completionBlock:^(NSString *data, NSError *error) {
|
completionBlock:^(NSString *data, NSError *error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
completionBlock(nil, error);
|
completionBlock(nil, error);
|
||||||
@ -153,6 +163,7 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
queryParams:queryParams
|
queryParams:queryParams
|
||||||
body:bodyDictionary
|
body:bodyDictionary
|
||||||
headerParams:headerParams
|
headerParams:headerParams
|
||||||
|
contentType:contentType
|
||||||
completionBlock:^(NSString *data, NSError *error) {
|
completionBlock:^(NSString *data, NSError *error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
completionBlock(error);
|
completionBlock(error);
|
||||||
@ -169,6 +180,7 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
queryParams:queryParams
|
queryParams:queryParams
|
||||||
body:bodyDictionary
|
body:bodyDictionary
|
||||||
headerParams:headerParams
|
headerParams:headerParams
|
||||||
|
contentType:contentType
|
||||||
completionBlock:^(NSDictionary *data, NSError *error) {
|
completionBlock:^(NSDictionary *data, NSError *error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
{{#returnBaseType}}completionBlock(nil, error);{{/returnBaseType}}
|
{{#returnBaseType}}completionBlock(nil, error);{{/returnBaseType}}
|
||||||
@ -202,6 +214,8 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
{{#pathParams}}[requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"{{baseName}}", @"}"]] withString: [_api escapeString:{{paramName}}]];
|
{{#pathParams}}[requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"{{baseName}}", @"}"]] withString: [_api escapeString:{{paramName}}]];
|
||||||
{{/pathParams}}
|
{{/pathParams}}
|
||||||
|
|
||||||
|
NSString* contentType = @"application/json";
|
||||||
|
|
||||||
NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
|
NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
|
||||||
{{#queryParams}}if({{paramName}} != nil)
|
{{#queryParams}}if({{paramName}} != nil)
|
||||||
queryParams[@"{{baseName}}"] = {{paramName}};
|
queryParams[@"{{baseName}}"] = {{paramName}};
|
||||||
@ -250,6 +264,7 @@ static NSString * basePath = @"{{basePath}}";
|
|||||||
queryParams:queryParams
|
queryParams:queryParams
|
||||||
body:bodyDictionary
|
body:bodyDictionary
|
||||||
headerParams:headerParams
|
headerParams:headerParams
|
||||||
|
contentType:contentType
|
||||||
completionBlock:^(NSDictionary *data, NSError *error) {
|
completionBlock:^(NSDictionary *data, NSError *error) {
|
||||||
if (error) {
|
if (error) {
|
||||||
{{#returnBaseType}}completionBlock(nil, error);{{/returnBaseType}}
|
{{#returnBaseType}}completionBlock(nil, error);{{/returnBaseType}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user