From 8f0bd7301f9fde00dd5234658f9d262da1e537ad Mon Sep 17 00:00:00 2001 From: Jean-Michel Douliez Date: Tue, 26 Apr 2016 14:12:58 +0200 Subject: [PATCH 1/6] Update api.mustache --- .../src/main/resources/swift/api.mustache | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/swift/api.mustache b/modules/swagger-codegen/src/main/resources/swift/api.mustache index 9801182e082..e5fe9651e0c 100644 --- a/modules/swagger-codegen/src/main/resources/swift/api.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/api.mustache @@ -80,11 +80,14 @@ public class {{classname}}: APIBase { ]{{/hasMore}}{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}} "{{baseName}}": {{paramName}}{{#isInteger}}{{^required}}?{{/required}}.encodeToJSON(){{/isInteger}}{{#isLong}}{{^required}}?{{/required}}.encodeToJSON(){{/isLong}}{{#hasMore}},{{/hasMore}}{{^hasMore}} ]{{/hasMore}}{{/queryParams}} - let parameters = APIHelper.rejectNil(nillableParameters){{/bodyParam}} - + + let parameters = APIHelper.rejectNil(nillableParameters) + + let convertedParameters = APIHelper.convertBoolToString(parameters!){{/bodyParam}} + let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "{{httpMethod}}", URLString: URLString, parameters: parameters, isBody: {{^queryParams}}{{^formParams}}true{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}}{{#formParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/formParams}}) + return requestBuilder.init(method: "{{httpMethod}}", URLString: URLString, parameters: convertedParameters, isBody: {{^queryParams}}{{^formParams}}true{{/formParams}}{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}}{{#formParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/formParams}}) } {{/operation}} From 09a02223080c8eb0698120c386639c8868fa3e4d Mon Sep 17 00:00:00 2001 From: Jean-Michel Douliez Date: Tue, 26 Apr 2016 19:31:07 +0200 Subject: [PATCH 2/6] accepting non nil potentially void dictionary --- modules/swagger-codegen/src/main/resources/swift/api.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/swift/api.mustache b/modules/swagger-codegen/src/main/resources/swift/api.mustache index e5fe9651e0c..bdd9f5db5db 100644 --- a/modules/swagger-codegen/src/main/resources/swift/api.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/api.mustache @@ -83,7 +83,7 @@ public class {{classname}}: APIBase { let parameters = APIHelper.rejectNil(nillableParameters) - let convertedParameters = APIHelper.convertBoolToString(parameters!){{/bodyParam}} + let convertedParameters = APIHelper.convertBoolToString(parameters){{/bodyParam}} let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder() From 4b39e0579f2b03cbf51702624bf16cd0eb3803f6 Mon Sep 17 00:00:00 2001 From: Jean-Michel Douliez Date: Tue, 26 Apr 2016 19:28:05 +0200 Subject: [PATCH 3/6] returning non nil potentially void dictionary --- .../src/main/resources/swift/APIHelper.mustache | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache b/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache index 418f1c8512b..e562ae92cf4 100644 --- a/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache @@ -18,4 +18,20 @@ class APIHelper { } return destination } + + static func convertBoolToString(source: [String: AnyObject]) -> [String:AnyObject] { + var destination = [String:AnyObject]() + let theTrue = NSNumber(bool: true) + let theFalse = NSNumber(bool: false) + for (key, value) in source { + switch value { + case let x where x === theTrue || x === theFalse: + destination[key] = "\(value as! Bool)" + default: + destination[key] = value + } + } + return destination + } + } From 9f19a74123c12e9d5083ef4fb93fac14ac7786e5 Mon Sep 17 00:00:00 2001 From: Jean-Michel Douliez Date: Tue, 10 May 2016 12:45:38 +0200 Subject: [PATCH 4/6] Update APIHelper.mustache --- .../src/main/resources/swift/APIHelper.mustache | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache b/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache index e562ae92cf4..7041709f365 100644 --- a/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache @@ -19,16 +19,18 @@ class APIHelper { return destination } - static func convertBoolToString(source: [String: AnyObject]) -> [String:AnyObject] { + static func convertBoolToString(source: [String: AnyObject]?) -> [String:AnyObject] { var destination = [String:AnyObject]() let theTrue = NSNumber(bool: true) let theFalse = NSNumber(bool: false) - for (key, value) in source { - switch value { - case let x where x === theTrue || x === theFalse: - destination[key] = "\(value as! Bool)" - default: - destination[key] = value + if (source != nil) { + for (key, value) in source! { + switch value { + case let x where x === theTrue || x === theFalse: + destination[key] = "\(value as! Bool)" + default: + destination[key] = value + } } } return destination From 6178149f10ddcbcff6e42d18e9e9c342a21e59d7 Mon Sep 17 00:00:00 2001 From: Jean-Michel Douliez Date: Tue, 10 May 2016 12:46:30 +0200 Subject: [PATCH 5/6] Update api.mustache --- modules/swagger-codegen/src/main/resources/swift/api.mustache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/swift/api.mustache b/modules/swagger-codegen/src/main/resources/swift/api.mustache index bdd9f5db5db..8e3216052a0 100644 --- a/modules/swagger-codegen/src/main/resources/swift/api.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/api.mustache @@ -81,9 +81,9 @@ public class {{classname}}: APIBase { "{{baseName}}": {{paramName}}{{#isInteger}}{{^required}}?{{/required}}.encodeToJSON(){{/isInteger}}{{#isLong}}{{^required}}?{{/required}}.encodeToJSON(){{/isLong}}{{#hasMore}},{{/hasMore}}{{^hasMore}} ]{{/hasMore}}{{/queryParams}} - let parameters = APIHelper.rejectNil(nillableParameters) + let parameters = APIHelper.rejectNil(nillableParameters){{/bodyParam}} - let convertedParameters = APIHelper.convertBoolToString(parameters){{/bodyParam}} + let convertedParameters = APIHelper.convertBoolToString(parameters) let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder() From 1d6eef715c3e99bf6bbc8f81cb21ed15f230f443 Mon Sep 17 00:00:00 2001 From: wing328 Date: Sun, 15 May 2016 01:35:01 +0800 Subject: [PATCH 6/6] update swift petstore sample --- .../Classes/Swaggers/APIHelper.swift | 18 +++++++ .../Classes/Swaggers/APIs/PetAPI.swift | 54 +++++++++++++------ .../Classes/Swaggers/APIs/StoreAPI.swift | 27 +++++++--- .../Classes/Swaggers/APIs/UserAPI.swift | 52 ++++++++++++------ 4 files changed, 111 insertions(+), 40 deletions(-) diff --git a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIHelper.swift b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIHelper.swift index 418f1c8512b..7041709f365 100644 --- a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIHelper.swift +++ b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIHelper.swift @@ -18,4 +18,22 @@ class APIHelper { } return destination } + + static func convertBoolToString(source: [String: AnyObject]?) -> [String:AnyObject] { + var destination = [String:AnyObject]() + let theTrue = NSNumber(bool: true) + let theFalse = NSNumber(bool: false) + if (source != nil) { + for (key, value) in source! { + switch value { + case let x where x === theTrue || x === theFalse: + destination[key] = "\(value as! Bool)" + default: + destination[key] = value + } + } + } + return destination + } + } diff --git a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift index 64aa3c8803c..c7e5a6402b5 100644 --- a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift +++ b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/PetAPI.swift @@ -57,10 +57,12 @@ public class PetAPI: APIBase { let path = "/pet" let URLString = PetstoreClientAPI.basePath + path let parameters = body?.encodeToJSON() as? [String:AnyObject] - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "POST", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -111,11 +113,14 @@ public class PetAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -174,11 +179,14 @@ public class PetAPI: APIBase { let nillableParameters: [String:AnyObject?] = [ "status": status ] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: false) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false) } /** @@ -276,11 +284,14 @@ public class PetAPI: APIBase { let nillableParameters: [String:AnyObject?] = [ "tags": tags ] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: false) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false) } /** @@ -380,11 +391,14 @@ public class PetAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -433,10 +447,12 @@ public class PetAPI: APIBase { let path = "/pet" let URLString = PetstoreClientAPI.basePath + path let parameters = body?.encodeToJSON() as? [String:AnyObject] - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "PUT", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -496,11 +512,14 @@ public class PetAPI: APIBase { "name": name, "status": status ] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "POST", URLString: URLString, parameters: parameters, isBody: false) + return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: false) } /** @@ -560,11 +579,14 @@ public class PetAPI: APIBase { "additionalMetadata": additionalMetadata, "file": file ] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "POST", URLString: URLString, parameters: parameters, isBody: false) + return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: false) } } diff --git a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift index 4521afd3d89..be7d36b91f3 100644 --- a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/StoreAPI.swift @@ -56,11 +56,14 @@ public class StoreAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -112,11 +115,14 @@ public class StoreAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder<[String:Int32]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -194,11 +200,14 @@ public class StoreAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -274,10 +283,12 @@ public class StoreAPI: APIBase { let path = "/store/order" let URLString = PetstoreClientAPI.basePath + path let parameters = body?.encodeToJSON() as? [String:AnyObject] - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "POST", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true) } } diff --git a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift index 62018cd83c2..1b5ada9da67 100644 --- a/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift +++ b/samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/APIs/UserAPI.swift @@ -54,10 +54,12 @@ public class UserAPI: APIBase { let path = "/user" let URLString = PetstoreClientAPI.basePath + path let parameters = body?.encodeToJSON() as? [String:AnyObject] - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "POST", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -103,10 +105,12 @@ public class UserAPI: APIBase { let path = "/user/createWithArray" let URLString = PetstoreClientAPI.basePath + path let parameters = body?.encodeToJSON() as? [String:AnyObject] - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "POST", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -152,10 +156,12 @@ public class UserAPI: APIBase { let path = "/user/createWithList" let URLString = PetstoreClientAPI.basePath + path let parameters = body?.encodeToJSON() as? [String:AnyObject] - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "POST", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "POST", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -203,11 +209,14 @@ public class UserAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "DELETE", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -293,11 +302,14 @@ public class UserAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -352,11 +364,14 @@ public class UserAPI: APIBase { "username": username, "password": password ] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: false) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: false) } /** @@ -399,11 +414,14 @@ public class UserAPI: APIBase { let URLString = PetstoreClientAPI.basePath + path let nillableParameters: [String:AnyObject?] = [:] + let parameters = APIHelper.rejectNil(nillableParameters) - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "GET", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "GET", URLString: URLString, parameters: convertedParameters, isBody: true) } /** @@ -453,10 +471,12 @@ public class UserAPI: APIBase { path = path.stringByReplacingOccurrencesOfString("{username}", withString: "\(username)", options: .LiteralSearch, range: nil) let URLString = PetstoreClientAPI.basePath + path let parameters = body?.encodeToJSON() as? [String:AnyObject] - + + let convertedParameters = APIHelper.convertBoolToString(parameters) + let requestBuilder: RequestBuilder.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder() - return requestBuilder.init(method: "PUT", URLString: URLString, parameters: parameters, isBody: true) + return requestBuilder.init(method: "PUT", URLString: URLString, parameters: convertedParameters, isBody: true) } }