From fb14585adf2a2235e9f2a1913d9a35cc53554431 Mon Sep 17 00:00:00 2001 From: geekerzp Date: Thu, 17 Sep 2015 15:20:11 +0800 Subject: [PATCH 1/2] Add parameterToString method --- .../resources/objc/ApiClient-body.mustache | 29 ++++++++++- .../resources/objc/ApiClient-header.mustache | 5 ++ .../src/main/resources/objc/api-body.mustache | 20 ++------ .../petstore/objc/SwaggerClient.podspec | 8 +-- .../objc/SwaggerClient/SWGApiClient.h | 5 ++ .../objc/SwaggerClient/SWGApiClient.m | 29 ++++++++++- .../petstore/objc/SwaggerClient/SWGPetApi.m | 50 ++++--------------- .../petstore/objc/SwaggerClient/SWGStoreApi.m | 12 +---- .../petstore/objc/SwaggerClient/SWGUserApi.h | 2 +- .../petstore/objc/SwaggerClient/SWGUserApi.m | 20 ++------ .../SwaggerClient/SWGViewController.m | 5 +- 11 files changed, 92 insertions(+), 93 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache b/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache index 6690dafc7cc..fed095c3c5a 100644 --- a/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache @@ -546,7 +546,8 @@ static void (^reachabilityChangeBlock)(int); parameters:nil constructingBodyWithBlock:^(id formData) { [formParams enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { - NSData *data = [obj dataUsingEncoding:NSUTF8StringEncoding]; + NSString *objString = [self parameterToString:obj]; + NSData *data = [objString dataUsingEncoding:NSUTF8StringEncoding]; [formData appendPartWithFormData:data name:key]; }]; [files enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { @@ -763,4 +764,30 @@ static void (^reachabilityChangeBlock)(int); return securityPolicy; } +- (NSString *) parameterToString:(id)param { + if ([param isKindOfClass:[NSString class]]) { + return param; + } + else if ([param isKindOfClass:[NSNumber class]]) { + return [param stringValue]; + } + else if ([param isKindOfClass:[NSDate class]]) { + return [param ISO8601String]; + } + else if ([param isKindOfClass:[NSArray class]]) { + NSMutableArray *mutableParam; + [param enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { + [mutableParam addObject:[self parameterToString:obj]]; + }]; + return [mutableParam componentsJoinedByString:@", "]; + } + else { + NSException *e = [NSException + exceptionWithName:@"InvalidObjectArgumentException" + reason:[NSString stringWithFormat:@"*** The argument object: %@ is invalid", param] + userInfo:nil]; + @throw e; + } +} + @end diff --git a/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache b/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache index 226033973f5..6a9aadfa08b 100644 --- a/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/ApiClient-header.mustache @@ -210,4 +210,9 @@ extern NSString *const {{classPrefix}}ResponseObjectErrorKey; */ - (AFSecurityPolicy *) customSecurityPolicy; +/** + * Convert parameter to NSString + */ +- (NSString *) parameterToString: (id) param; + @end diff --git a/modules/swagger-codegen/src/main/resources/objc/api-body.mustache b/modules/swagger-codegen/src/main/resources/objc/api-body.mustache index 3756704db71..60358e4e9da 100644 --- a/modules/swagger-codegen/src/main/resources/objc/api-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/api-body.mustache @@ -100,11 +100,7 @@ static {{classname}}* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; {{#pathParams}}if ({{paramName}} != nil) { - if([{{paramName}} isKindOfClass:[NSNumber class]]){ - pathParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; - }else{ - pathParams[@"{{baseName}}"] = {{paramName}}; - } + pathParams[@"{{baseName}}"] = {{paramName}}; } {{/pathParams}} @@ -118,12 +114,8 @@ static {{classname}}* singletonAPI = nil; {{/queryParams}} NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; - {{#headerParams}}if({{paramName}} != nil){ - if([{{paramName}} isKindOfClass:[NSNumber class]]){ - headerParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; - }else{ - headerParams[@"{{baseName}}"] = {{paramName}}; - } + {{#headerParams}}if({{paramName}} != nil) { + headerParams[@"{{baseName}}"] = {{paramName}}; } {{/headerParams}} @@ -157,11 +149,7 @@ static {{classname}}* singletonAPI = nil; {{#formParams}} {{#notFile}} if ({{paramName}}) { - if([{{paramName}} isKindOfClass:[NSNumber class]]){ - formParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; - }else{ - formParams[@"{{baseName}}"] = {{paramName}}; - } + formParams[@"{{baseName}}"] = {{paramName}}; } {{/notFile}}{{#isFile}} files[@"{{paramName}}"] = {{paramName}}; diff --git a/samples/client/petstore/objc/SwaggerClient.podspec b/samples/client/petstore/objc/SwaggerClient.podspec index 0afb511073c..4445bc52ad2 100644 --- a/samples/client/petstore/objc/SwaggerClient.podspec +++ b/samples/client/petstore/objc/SwaggerClient.podspec @@ -21,10 +21,10 @@ Pod::Spec.new do |s| s.framework = 'SystemConfiguration' - s.homepage = "https://github.com/swagger-api/swagger-codegen" - s.license = "MIT" - s.source = { :git => "https://github.com/swagger-api/swagger-codegen.git", :tag => "#{s.version}" } - s.author = { "Swagger" => "apiteam@swagger.io" } + s.homepage = "" + s.license = "" + s.source = { :git => ".git", :tag => "#{s.version}" } + s.author = { "" => "" } s.source_files = 'SwaggerClient/**/*' s.public_header_files = 'SwaggerClient/**/*.h' diff --git a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h index adf59bb25cf..c703d8a22d2 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h +++ b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.h @@ -214,4 +214,9 @@ extern NSString *const SWGResponseObjectErrorKey; */ - (AFSecurityPolicy *) customSecurityPolicy; +/** + * Convert parameter to NSString + */ +- (NSString *) parameterToString: (id) param; + @end diff --git a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m index 8d640957dec..678589e7a02 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m +++ b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m @@ -546,7 +546,8 @@ static void (^reachabilityChangeBlock)(int); parameters:nil constructingBodyWithBlock:^(id formData) { [formParams enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { - NSData *data = [obj dataUsingEncoding:NSUTF8StringEncoding]; + NSString *objString = [self parameterToString:obj]; + NSData *data = [objString dataUsingEncoding:NSUTF8StringEncoding]; [formData appendPartWithFormData:data name:key]; }]; [files enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { @@ -763,4 +764,30 @@ static void (^reachabilityChangeBlock)(int); return securityPolicy; } +- (NSString *) parameterToString:(id)param { + if ([param isKindOfClass:[NSString class]]) { + return param; + } + else if ([param isKindOfClass:[NSNumber class]]) { + return [param stringValue]; + } + else if ([param isKindOfClass:[NSDate class]]) { + return [param ISO8601String]; + } + else if ([param isKindOfClass:[NSArray class]]) { + NSMutableArray *mutableParam; + [param enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { + [mutableParam addObject:[self parameterToString:obj]]; + }]; + return [mutableParam componentsJoinedByString:@", "]; + } + else { + NSException *e = [NSException + exceptionWithName:@"InvalidObjectArgumentException" + reason:[NSString stringWithFormat:@"*** The argument object: %@ is invalid", param] + userInfo:nil]; + @throw e; + } +} + @end diff --git a/samples/client/petstore/objc/SwaggerClient/SWGPetApi.m b/samples/client/petstore/objc/SwaggerClient/SWGPetApi.m index 50a1583b8a3..b890e03570f 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGPetApi.m +++ b/samples/client/petstore/objc/SwaggerClient/SWGPetApi.m @@ -421,11 +421,7 @@ static SWGPetApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (petId != nil) { - if([petId isKindOfClass:[NSNumber class]]){ - pathParams[@"petId"] = [((NSNumber *)petId) stringValue]; - }else{ - pathParams[@"petId"] = petId; - } + pathParams[@"petId"] = petId; } @@ -517,11 +513,7 @@ static SWGPetApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (petId != nil) { - if([petId isKindOfClass:[NSNumber class]]){ - pathParams[@"petId"] = [((NSNumber *)petId) stringValue]; - }else{ - pathParams[@"petId"] = petId; - } + pathParams[@"petId"] = petId; } @@ -559,21 +551,13 @@ static SWGPetApi* singletonAPI = nil; if (name) { - if([name isKindOfClass:[NSNumber class]]){ - formParams[@"name"] = [((NSNumber *)name) stringValue]; - }else{ - formParams[@"name"] = name; - } + formParams[@"name"] = name; } if (status) { - if([status isKindOfClass:[NSNumber class]]){ - formParams[@"status"] = [((NSNumber *)status) stringValue]; - }else{ - formParams[@"status"] = status; - } + formParams[@"status"] = status; } @@ -630,11 +614,7 @@ static SWGPetApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (petId != nil) { - if([petId isKindOfClass:[NSNumber class]]){ - pathParams[@"petId"] = [((NSNumber *)petId) stringValue]; - }else{ - pathParams[@"petId"] = petId; - } + pathParams[@"petId"] = petId; } @@ -642,12 +622,8 @@ static SWGPetApi* singletonAPI = nil; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; - if(apiKey != nil){ - if([apiKey isKindOfClass:[NSNumber class]]){ - headerParams[@"api_key"] = [((NSNumber *)apiKey) stringValue]; - }else{ - headerParams[@"api_key"] = apiKey; - } + if(apiKey != nil) { + headerParams[@"api_key"] = apiKey; } @@ -733,11 +709,7 @@ static SWGPetApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (petId != nil) { - if([petId isKindOfClass:[NSNumber class]]){ - pathParams[@"petId"] = [((NSNumber *)petId) stringValue]; - }else{ - pathParams[@"petId"] = petId; - } + pathParams[@"petId"] = petId; } @@ -775,11 +747,7 @@ static SWGPetApi* singletonAPI = nil; if (additionalMetadata) { - if([additionalMetadata isKindOfClass:[NSNumber class]]){ - formParams[@"additionalMetadata"] = [((NSNumber *)additionalMetadata) stringValue]; - }else{ - formParams[@"additionalMetadata"] = additionalMetadata; - } + formParams[@"additionalMetadata"] = additionalMetadata; } diff --git a/samples/client/petstore/objc/SwaggerClient/SWGStoreApi.m b/samples/client/petstore/objc/SwaggerClient/SWGStoreApi.m index e70a31561ef..5fdf86b43af 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGStoreApi.m +++ b/samples/client/petstore/objc/SwaggerClient/SWGStoreApi.m @@ -250,11 +250,7 @@ static SWGStoreApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (orderId != nil) { - if([orderId isKindOfClass:[NSNumber class]]){ - pathParams[@"orderId"] = [((NSNumber *)orderId) stringValue]; - }else{ - pathParams[@"orderId"] = orderId; - } + pathParams[@"orderId"] = orderId; } @@ -340,11 +336,7 @@ static SWGStoreApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (orderId != nil) { - if([orderId isKindOfClass:[NSNumber class]]){ - pathParams[@"orderId"] = [((NSNumber *)orderId) stringValue]; - }else{ - pathParams[@"orderId"] = orderId; - } + pathParams[@"orderId"] = orderId; } diff --git a/samples/client/petstore/objc/SwaggerClient/SWGUserApi.h b/samples/client/petstore/objc/SwaggerClient/SWGUserApi.h index 21f314684fd..ec41ecd9907 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGUserApi.h +++ b/samples/client/petstore/objc/SwaggerClient/SWGUserApi.h @@ -99,7 +99,7 @@ /// Get user by user name /// /// -/// @param username The name that needs to be fetched. Use user1 for testing. +/// @param username The name that needs to be fetched. Use user1 for testing. /// /// /// @return SWGUser* diff --git a/samples/client/petstore/objc/SwaggerClient/SWGUserApi.m b/samples/client/petstore/objc/SwaggerClient/SWGUserApi.m index 032c305d43a..5c3c313b2e2 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGUserApi.m +++ b/samples/client/petstore/objc/SwaggerClient/SWGUserApi.m @@ -470,7 +470,7 @@ static SWGUserApi* singletonAPI = nil; /// /// Get user by user name /// -/// @param username The name that needs to be fetched. Use user1 for testing. +/// @param username The name that needs to be fetched. Use user1 for testing. /// /// @returns SWGUser* /// @@ -495,11 +495,7 @@ static SWGUserApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (username != nil) { - if([username isKindOfClass:[NSNumber class]]){ - pathParams[@"username"] = [((NSNumber *)username) stringValue]; - }else{ - pathParams[@"username"] = username; - } + pathParams[@"username"] = username; } @@ -588,11 +584,7 @@ static SWGUserApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (username != nil) { - if([username isKindOfClass:[NSNumber class]]){ - pathParams[@"username"] = [((NSNumber *)username) stringValue]; - }else{ - pathParams[@"username"] = username; - } + pathParams[@"username"] = username; } @@ -678,11 +670,7 @@ static SWGUserApi* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; if (username != nil) { - if([username isKindOfClass:[NSNumber class]]){ - pathParams[@"username"] = [((NSNumber *)username) stringValue]; - }else{ - pathParams[@"username"] = username; - } + pathParams[@"username"] = username; } diff --git a/samples/client/petstore/objc/SwaggerClientTests/SwaggerClient/SWGViewController.m b/samples/client/petstore/objc/SwaggerClientTests/SwaggerClient/SWGViewController.m index ea8adc5c0e5..ec80b4e52b1 100644 --- a/samples/client/petstore/objc/SwaggerClientTests/SwaggerClient/SWGViewController.m +++ b/samples/client/petstore/objc/SwaggerClientTests/SwaggerClient/SWGViewController.m @@ -24,11 +24,10 @@ SWGConfiguration *config = [SWGConfiguration sharedConfig]; config.debug = YES; - config.verifySSL = NO; SWGPetApi *api = [[SWGPetApi alloc] init]; - SWGPet *pet = [self createPet]; - [api addPetWithCompletionBlock:pet completionHandler:^(NSError *error) { + NSURL *file = [NSURL fileURLWithPath:@"/Users/geekerzp/tmp/test.jpg"]; + [api uploadFileWithCompletionBlock:@2 additionalMetadata:@2 file:file completionHandler:^(NSError *error) { NSLog(@"*** error: %@", error); }]; } From 261ae795289acc590d4a2796ea59d9681318ef21 Mon Sep 17 00:00:00 2001 From: geekerzp Date: Thu, 17 Sep 2015 15:59:03 +0800 Subject: [PATCH 2/2] Remove space from parameterToString in objc client --- .../src/main/resources/objc/ApiClient-body.mustache | 2 +- samples/client/petstore/objc/SwaggerClient/SWGApiClient.m | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache b/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache index fed095c3c5a..119ff67572b 100644 --- a/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/ApiClient-body.mustache @@ -779,7 +779,7 @@ static void (^reachabilityChangeBlock)(int); [param enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { [mutableParam addObject:[self parameterToString:obj]]; }]; - return [mutableParam componentsJoinedByString:@", "]; + return [mutableParam componentsJoinedByString:@","]; } else { NSException *e = [NSException diff --git a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m index 678589e7a02..8767498dcaf 100644 --- a/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m +++ b/samples/client/petstore/objc/SwaggerClient/SWGApiClient.m @@ -779,7 +779,7 @@ static void (^reachabilityChangeBlock)(int); [param enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { [mutableParam addObject:[self parameterToString:obj]]; }]; - return [mutableParam componentsJoinedByString:@", "]; + return [mutableParam componentsJoinedByString:@","]; } else { NSException *e = [NSException