forked from loafle/openapi-generator-original
201 lines
6.6 KiB
Plaintext
201 lines
6.6 KiB
Plaintext
{{#operations}}
|
|
#import "{{classname}}.h"
|
|
#import "SWGFile.h"
|
|
#import "SWGQueryParamCollection.h"
|
|
#import "SWGApiClient.h"
|
|
{{#imports}}#import "{{import}}.h"
|
|
{{/imports}}
|
|
{{newline}}
|
|
|
|
@interface {{classname}} ()
|
|
@property (readwrite, nonatomic, strong) NSMutableDictionary *defaultHeaders;
|
|
@end
|
|
|
|
@implementation {{classname}}
|
|
static NSString * basePath = @"{{basePath}}";
|
|
|
|
+({{classname}}*) apiWithHeader:(NSString*)headerValue key:(NSString*)key {
|
|
static {{classname}}* singletonAPI = nil;
|
|
|
|
if (singletonAPI == nil) {
|
|
singletonAPI = [[{{classname}} alloc] init];
|
|
[singletonAPI addHeader:headerValue forKey:key];
|
|
}
|
|
return singletonAPI;
|
|
}
|
|
|
|
+(void) setBasePath:(NSString*)path {
|
|
basePath = path;
|
|
}
|
|
|
|
+(NSString*) getBasePath {
|
|
return basePath;
|
|
}
|
|
|
|
-(SWGApiClient*) apiClient {
|
|
return [SWGApiClient sharedClientFromPool:basePath];
|
|
}
|
|
|
|
-(void) addHeader:(NSString*)value forKey:(NSString*)key {
|
|
[self.defaultHeaders setValue:value forKey:key];
|
|
}
|
|
|
|
-(id) init {
|
|
self = [super init];
|
|
self.defaultHeaders = [NSMutableDictionary dictionary];
|
|
[self apiClient];
|
|
return self;
|
|
}
|
|
|
|
-(void) setHeaderValue:(NSString*) value
|
|
forKey:(NSString*)key {
|
|
[self.defaultHeaders setValue:value forKey:key];
|
|
}
|
|
|
|
-(unsigned long) requestQueueSize {
|
|
return [SWGApiClient requestQueueSize];
|
|
}
|
|
|
|
|
|
{{#operation}}
|
|
/*!
|
|
* {{{summary}}}
|
|
* {{{notes}}}
|
|
{{#allParams}} * \param {{paramName}} {{{description}}}
|
|
{{/allParams}} * \returns {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
|
|
*/
|
|
-(NSNumber*) {{nickname}}WithCompletionBlock{{^allParams}}: {{/allParams}}{{#allParams}}{{#secondaryParam}} {{paramName}}{{/secondaryParam}}: ({{{dataType}}}) {{paramName}}
|
|
{{/allParams}}
|
|
{{#returnBaseType}}{{#hasParams}}completionHandler: {{/hasParams}}(void (^)({{{returnType}}} output, NSError* error))completionBlock{{/returnBaseType}}
|
|
{{^returnBaseType}}{{#hasParams}}completionHandler: {{/hasParams}}(void (^)(NSError* error))completionBlock{{/returnBaseType}} {
|
|
|
|
{{#allParams}}{{#required}}
|
|
// verify the required parameter '{{paramName}}' is set
|
|
NSAssert({{paramName}} != nil, @"Missing the required parameter `{{paramName}}` when calling {{nickname}}");
|
|
{{/required}}{{/allParams}}
|
|
|
|
NSMutableString* requestUrl = [NSMutableString stringWithFormat:@"%@{{path}}", basePath];
|
|
|
|
// remove format in URL if needed
|
|
if ([requestUrl rangeOfString:@".{format}"].location != NSNotFound)
|
|
[requestUrl replaceCharactersInRange: [requestUrl rangeOfString:@".{format}"] withString:@".json"];
|
|
|
|
{{#pathParams}}[requestUrl replaceCharactersInRange: [requestUrl rangeOfString:[NSString stringWithFormat:@"%@%@%@", @"{", @"{{baseName}}", @"}"]] withString: [SWGApiClient escape:{{paramName}}]];
|
|
{{/pathParams}}
|
|
|
|
NSMutableDictionary* queryParams = [[NSMutableDictionary alloc] init];
|
|
{{#queryParams}}if({{paramName}} != nil) {
|
|
{{#collectionFormat}}
|
|
queryParams[@"{{baseName}}"] = [[SWGQueryParamCollection alloc] initWithValuesAndFormat: {{baseName}} format: @"{{collectionFormat}}"];
|
|
{{/collectionFormat}}
|
|
{{^collectionFormat}}queryParams[@"{{baseName}}"] = {{paramName}};{{/collectionFormat}}
|
|
}
|
|
{{/queryParams}}
|
|
NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders];
|
|
|
|
{{#headerParams}}if({{paramName}} != nil)
|
|
headerParams[@"{{baseName}}"] = {{paramName}};
|
|
{{/headerParams}}
|
|
|
|
// HTTP header `Accept`
|
|
NSArray *headerAccept = @[{{#produces}}@"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}}];
|
|
headerParams[@"Accept"] = [SWGApiClient selectHeaderAccept:headerAccept];
|
|
NSString *responseContentType = [headerParams[@"Accept"] componentsSeparatedByString:@", "][0];
|
|
|
|
// HTTP header `Content-Type`
|
|
NSArray *headerContentType = @[{{#consumes}}@"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/consumes}}];
|
|
headerParams[@"Content-Type"] = [SWGApiClient selectHeaderContentType:headerContentType];
|
|
NSString *requestContentType = headerParams[@"Content-Type"];
|
|
|
|
id bodyDictionary = nil;
|
|
{{#bodyParam}}
|
|
id __body = {{paramName}};
|
|
|
|
if(__body != nil && [__body isKindOfClass:[NSArray class]]){
|
|
NSMutableArray * objs = [[NSMutableArray alloc] init];
|
|
for (id dict in (NSArray*)__body) {
|
|
if([dict respondsToSelector:@selector(toDictionary)]) {
|
|
[objs addObject:[(SWGObject*)dict toDictionary]];
|
|
}
|
|
else{
|
|
[objs addObject:dict];
|
|
}
|
|
}
|
|
bodyDictionary = objs;
|
|
}
|
|
else if([__body respondsToSelector:@selector(toDictionary)]) {
|
|
bodyDictionary = [(SWGObject*)__body toDictionary];
|
|
}
|
|
else if([__body isKindOfClass:[NSString class]]) {
|
|
// convert it to a dictionary
|
|
NSError * error;
|
|
NSString * str = (NSString*)__body;
|
|
NSDictionary *JSON =
|
|
[NSJSONSerialization JSONObjectWithData: [str dataUsingEncoding: NSUTF8StringEncoding]
|
|
options: NSJSONReadingMutableContainers
|
|
error: &error];
|
|
bodyDictionary = JSON;
|
|
}
|
|
{{/bodyParam}}
|
|
{{^bodyParam}}
|
|
|
|
NSMutableDictionary * formParams = [[NSMutableDictionary alloc]init];
|
|
|
|
{{#formParams}}
|
|
{{#notFile}}
|
|
formParams[@"{{paramName}}"] = {{paramName}};
|
|
{{/notFile}}{{#isFile}}
|
|
requestContentType = @"multipart/form-data";
|
|
if(bodyDictionary == nil) {
|
|
bodyDictionary = [[NSMutableArray alloc] init];
|
|
}
|
|
if({{paramName}} != nil) {
|
|
[bodyDictionary addObject:{{paramName}}];
|
|
{{paramName}}.paramName = @"{{baseName}}";
|
|
}
|
|
{{/isFile}}
|
|
if(bodyDictionary == nil) {
|
|
bodyDictionary = [[NSMutableArray alloc] init];
|
|
}
|
|
[bodyDictionary addObject:formParams];
|
|
{{/formParams}}
|
|
{{/bodyParam}}
|
|
|
|
{{#requiredParamCount}}
|
|
{{#requiredParams}}
|
|
if({{paramName}} == nil) {
|
|
// error
|
|
}
|
|
{{/requiredParams}}
|
|
{{/requiredParamCount}}
|
|
|
|
SWGApiClient* client = [SWGApiClient sharedClientFromPool:basePath];
|
|
|
|
{{#returnContainer}}
|
|
// response is in a container
|
|
{{>apiBodyResponseWithContainer}}{{/returnContainer}}
|
|
|
|
{{#returnSimpleType}}
|
|
// non container response
|
|
|
|
{{#returnTypeIsPrimitive}}
|
|
// primitive response
|
|
{{>apiPrimitiveResponse}}{{/returnTypeIsPrimitive}}
|
|
|
|
{{#returnBaseType}}
|
|
// complex response
|
|
{{>apiNonPrimitiveResponse}}{{/returnBaseType}}
|
|
{{/returnSimpleType}}
|
|
|
|
{{^returnSimpleType}}{{^returnContainer}}
|
|
// it's void
|
|
{{>voidResponse}}
|
|
{{/returnContainer}}{{/returnSimpleType}}
|
|
}
|
|
|
|
{{/operation}}
|
|
|
|
{{newline}}
|
|
{{/operations}}
|
|
@end
|