From 1321d5f9a55c62650f8a55eefcfd7aa1077b9f2b Mon Sep 17 00:00:00 2001 From: Matthew Davis Date: Fri, 11 Sep 2015 17:23:48 -0700 Subject: [PATCH 1/3] [Obj-C] Fixed an issue where NSNumber parameters would cause a crash in multipart/form-data upload endpoints --- .../src/main/resources/objc/api-body.mustache | 6 ++++++ 1 file changed, 6 insertions(+) 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 1aa22a0a0c6..d49a02dfbeb 100644 --- a/modules/swagger-codegen/src/main/resources/objc/api-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/api-body.mustache @@ -115,6 +115,9 @@ static {{classname}}* singletonAPI = nil; NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; {{#headerParams}}if({{paramName}} != nil) + if([{{paramName}} isKindOfClass:[NSNumber class]]){ + headerParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; + } headerParams[@"{{baseName}}"] = {{paramName}}; {{/headerParams}} @@ -148,6 +151,9 @@ static {{classname}}* singletonAPI = nil; {{#formParams}} {{#notFile}} if ({{paramName}}) { + if([{{paramName}} isKindOfClass:[NSNumber class]]){ + formParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; + } formParams[@"{{baseName}}"] = {{paramName}}; } {{/notFile}}{{#isFile}} From 761f172c2f4a5e1844df93f21d08838f25d21d07 Mon Sep 17 00:00:00 2001 From: Matthew Davis Date: Fri, 11 Sep 2015 17:27:25 -0700 Subject: [PATCH 2/3] forgot an 'else' statement --- .../src/main/resources/objc/api-body.mustache | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 d49a02dfbeb..ae049f66993 100644 --- a/modules/swagger-codegen/src/main/resources/objc/api-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/api-body.mustache @@ -117,8 +117,9 @@ static {{classname}}* singletonAPI = nil; {{#headerParams}}if({{paramName}} != nil) if([{{paramName}} isKindOfClass:[NSNumber class]]){ headerParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; + }else{ + headerParams[@"{{baseName}}"] = {{paramName}}; } - headerParams[@"{{baseName}}"] = {{paramName}}; {{/headerParams}} // HTTP header `Accept` @@ -153,8 +154,9 @@ static {{classname}}* singletonAPI = nil; if ({{paramName}}) { if([{{paramName}} isKindOfClass:[NSNumber class]]){ formParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; + }else{ + formParams[@"{{baseName}}"] = {{paramName}}; } - formParams[@"{{baseName}}"] = {{paramName}}; } {{/notFile}}{{#isFile}} files[@"{{paramName}}"] = {{paramName}}; From 1268b0627ff3966ff101d06334f19f5957b9b5c0 Mon Sep 17 00:00:00 2001 From: Matthew Davis Date: Fri, 11 Sep 2015 17:33:36 -0700 Subject: [PATCH 3/3] added NSNumber catch to pathParams as well --- .../src/main/resources/objc/api-body.mustache | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 ae049f66993..3756704db71 100644 --- a/modules/swagger-codegen/src/main/resources/objc/api-body.mustache +++ b/modules/swagger-codegen/src/main/resources/objc/api-body.mustache @@ -100,7 +100,11 @@ static {{classname}}* singletonAPI = nil; NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init]; {{#pathParams}}if ({{paramName}} != nil) { - pathParams[@"{{baseName}}"] = {{paramName}}; + if([{{paramName}} isKindOfClass:[NSNumber class]]){ + pathParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; + }else{ + pathParams[@"{{baseName}}"] = {{paramName}}; + } } {{/pathParams}} @@ -114,12 +118,13 @@ static {{classname}}* singletonAPI = nil; {{/queryParams}} NSMutableDictionary* headerParams = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; - {{#headerParams}}if({{paramName}} != nil) + {{#headerParams}}if({{paramName}} != nil){ if([{{paramName}} isKindOfClass:[NSNumber class]]){ headerParams[@"{{baseName}}"] = [((NSNumber *){{paramName}}) stringValue]; }else{ headerParams[@"{{baseName}}"] = {{paramName}}; } + } {{/headerParams}} // HTTP header `Accept`