From 410144ea1cd4fd066955b91f1ee4bc25b9c440ed Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 9 Jun 2015 13:00:13 +0800 Subject: [PATCH] rollback swift template --- .../main/resources/swift/APIHelper.mustache | 24 +- .../src/main/resources/swift/APIs.mustache | 71 +++--- .../swift/AlamofireImplementations.mustache | 137 ++++++------ .../main/resources/swift/Extensions.mustache | 39 ++-- .../src/main/resources/swift/Models.mustache | 208 ++++++++---------- .../src/main/resources/swift/api.mustache | 75 +++---- .../src/main/resources/swift/model.mustache | 32 +-- 7 files changed, 272 insertions(+), 314 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache b/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache index 97e49d2c627..418f1c8512b 100644 --- a/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/APIHelper.mustache @@ -5,17 +5,17 @@ // class APIHelper { -static func rejectNil(source: [String:AnyObject?]) -> [String:AnyObject]? { -var destination = [String:AnyObject]() -for (key, nillableValue) in source { -if let value: AnyObject = nillableValue { -destination[key] = value -} -} + static func rejectNil(source: [String:AnyObject?]) -> [String:AnyObject]? { + var destination = [String:AnyObject]() + for (key, nillableValue) in source { + if let value: AnyObject = nillableValue { + destination[key] = value + } + } -if destination.isEmpty { -return nil -} -return destination -} + if destination.isEmpty { + return nil + } + return destination + } } diff --git a/modules/swagger-codegen/src/main/resources/swift/APIs.mustache b/modules/swagger-codegen/src/main/resources/swift/APIs.mustache index c021eafe376..aa39ccfcbdd 100644 --- a/modules/swagger-codegen/src/main/resources/swift/APIs.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/APIs.mustache @@ -8,64 +8,59 @@ import Foundation import PromiseKit class {{projectName}}API { -static let basePath = "{{^basePathOverride}}{{basePath}}{{/basePathOverride}}{{basePathOverride}}" -static var credential: NSURLCredential? -static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() + static let basePath = "{{^basePathOverride}}{{basePath}}{{/basePathOverride}}{{basePathOverride}}" + static var credential: NSURLCredential? + static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() } class APIBase { -func toParameters(encodable: JSONEncodable?) -> [String: AnyObject]? { -let encoded: AnyObject? = encodable?.encode() + func toParameters(encodable: JSONEncodable?) -> [String: AnyObject]? { + let encoded: AnyObject? = encodable?.encode() -if encoded! is [AnyObject] { -var dictionary = [String:AnyObject]() -for (index, item) in enumerate(encoded as! [AnyObject]) { -dictionary["\(index)"] = item -} -return dictionary -} else { -return encoded as? [String:AnyObject] -} -} + if encoded! is [AnyObject] { + var dictionary = [String:AnyObject]() + for (index, item) in enumerate(encoded as! [AnyObject]) { + dictionary["\(index)"] = item + } + return dictionary + } else { + return encoded as? [String:AnyObject] + } + } } -class RequestBuilder - { +class RequestBuilder { var credential: NSURLCredential? var headers: [String:String] = [:] let parameters: [String:AnyObject]? let isBody: Bool let method: String let URLString: String - + required init(method: String, URLString: String, parameters: [String:AnyObject]?, isBody: Bool) { - self.method = method - self.URLString = URLString - self.parameters = parameters - self.isBody = isBody + self.method = method + self.URLString = URLString + self.parameters = parameters + self.isBody = isBody } + + func execute() -> Promise> { fatalError("Not implemented") } - func execute() -> Promise - > { fatalError("Not implemented") } - - func addHeader(#name: String, value: String) -> Self { + func addHeader(#name: String, value: String) -> Self { if !value.isEmpty { - headers[name] = value + headers[name] = value } return self - } - - func addCredential() -> Self { + } + + func addCredential() -> Self { self.credential = {{projectName}}API.credential return self - } - } + } +} - protocol RequestBuilderFactory { - func getBuilder - () -> RequestBuilder - .Type - } +protocol RequestBuilderFactory { + func getBuilder() -> RequestBuilder.Type +} diff --git a/modules/swagger-codegen/src/main/resources/swift/AlamofireImplementations.mustache b/modules/swagger-codegen/src/main/resources/swift/AlamofireImplementations.mustache index 5b6d6a68874..244d816332c 100644 --- a/modules/swagger-codegen/src/main/resources/swift/AlamofireImplementations.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/AlamofireImplementations.mustache @@ -8,83 +8,72 @@ import Alamofire import PromiseKit class AlamofireRequestBuilderFactory: RequestBuilderFactory { -func getBuilder -() -> RequestBuilder - .Type { - return AlamofireRequestBuilder - .self + func getBuilder() -> RequestBuilder.Type { + return AlamofireRequestBuilder.self + } +} + +// Store manager to retain its reference +private var managerStore: [String: Alamofire.Manager] = [:] + +class AlamofireRequestBuilder: RequestBuilder { + required init(method: String, URLString: String, parameters: [String : AnyObject]?, isBody: Bool) { + super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody) + } + + override func execute() -> Promise> { + let managerId = NSUUID().UUIDString + // Create a new manager for each request to customize its request header + let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() + configuration.HTTPAdditionalHeaders = buildHeaders() + let manager = Alamofire.Manager(configuration: configuration) + managerStore[managerId] = manager + + let encoding = isBody ? Alamofire.ParameterEncoding.JSON : Alamofire.ParameterEncoding.URL + let request = manager.request(Alamofire.Method(rawValue: method)!, URLString, parameters: parameters, encoding: encoding) + if let credential = self.credential { + request.authenticate(usingCredential: credential) + } + + let defer = Promise>.defer() + request.responseJSON(options: .AllowFragments) { (req, res, json, error) in + managerStore.removeValueForKey(managerId) + + if let error = error { + defer.reject(error) + return } + if res!.statusCode >= 400 { + //TODO: Add error entity + let error = NSError(domain: res!.URL!.URLString, code: res!.statusCode, userInfo: [:]) + defer.reject(error) + return } - // Store manager to retain its reference - private var managerStore: [String: Alamofire.Manager] = [:] + if () is T { + let response = Response(response: res!, body: () as! T) + defer.fulfill(response) + return + } + if let json: AnyObject = json { + let body = Decoders.decode(clazz: T.self, source: json) + let response = Response(response: res!, body: body) + defer.fulfill(response) + return + } + + defer.reject(NSError(domain: "localhost", code: 500, userInfo: ["reason": "unreacheable code"])) + } + return defer.promise + } - class AlamofireRequestBuilder - : RequestBuilder - { - required init(method: String, URLString: String, parameters: [String : AnyObject]?, isBody: Bool) { - super.init(method: method, URLString: URLString, parameters: parameters, isBody: isBody) - } - - override func execute() -> Promise - > { - let managerId = NSUUID().UUIDString - // Create a new manager for each request to customize its request header - let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() - configuration.HTTPAdditionalHeaders = buildHeaders() - let manager = Alamofire.Manager(configuration: configuration) - managerStore[managerId] = manager - - let encoding = isBody ? Alamofire.ParameterEncoding.JSON : Alamofire.ParameterEncoding.URL - let request = manager.request(Alamofire.Method(rawValue: method)!, URLString, parameters: - parameters, encoding: encoding) - if let credential = self.credential { - request.authenticate(usingCredential: credential) - } - - let defer = Promise - >.defer() - request.responseJSON(options: .AllowFragments) { (req, res, json, error) in - managerStore.removeValueForKey(managerId) - - if let error = error { - defer.reject(error) - return - } - if res!.statusCode >= 400 { - //TODO: Add error entity - let error = NSError(domain: res!.URL!.URLString, code: res!.statusCode, userInfo: [:]) - defer.reject(error) - return - } - - if () is T { - let response = Response(response: res!, body: () as! T) - defer.fulfill(response) - return - } - if let json: AnyObject = json { - let body = Decoders.decode(clazz: T.self, source: json) - let response = Response(response: res!, body: body) - defer.fulfill(response) - return - } - - defer.reject(NSError(domain: "localhost", code: 500, userInfo: ["reason": "unreacheable - code"])) - } - return defer.promise - } - - private func buildHeaders() -> [String: AnyObject] { - var httpHeaders = Manager.defaultHTTPHeaders - for (key, value) in self.headers { - httpHeaders[key] = value - } - return httpHeaders - } - } + private func buildHeaders() -> [String: AnyObject] { + var httpHeaders = Manager.defaultHTTPHeaders + for (key, value) in self.headers { + httpHeaders[key] = value + } + return httpHeaders + } +} diff --git a/modules/swagger-codegen/src/main/resources/swift/Extensions.mustache b/modules/swagger-codegen/src/main/resources/swift/Extensions.mustache index 2a7998f14cd..c937db23fe3 100644 --- a/modules/swagger-codegen/src/main/resources/swift/Extensions.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/Extensions.mustache @@ -8,46 +8,45 @@ import Alamofire import PromiseKit extension Bool: JSONEncodable { -func encode() -> AnyObject { return self } + func encode() -> AnyObject { return self } } extension Float: JSONEncodable { -func encode() -> AnyObject { return self } + func encode() -> AnyObject { return self } } extension Int: JSONEncodable { -func encode() -> AnyObject { return self } + func encode() -> AnyObject { return self } } extension Double: JSONEncodable { -func encode() -> AnyObject { return self } + func encode() -> AnyObject { return self } } extension String: JSONEncodable { -func encode() -> AnyObject { return self } + func encode() -> AnyObject { return self } } -private func encodeIfPossible -(object: T) -> AnyObject { +private func encodeIfPossible(object: T) -> AnyObject { if object is JSONEncodable { - return (object as! JSONEncodable).encode() + return (object as! JSONEncodable).encode() } else { - return object as! AnyObject - } + return object as! AnyObject } +} - extension Array: JSONEncodable { +extension Array: JSONEncodable { func encode() -> AnyObject { - return self.map(encodeIfPossible) - } + return self.map(encodeIfPossible) } +} - extension Dictionary: JSONEncodable { +extension Dictionary: JSONEncodable { func encode() -> AnyObject { - var dictionary = [NSObject:AnyObject]() - for (key, value) in self { - dictionary[key as! NSObject] = encodeIfPossible(value) - } - return dictionary - } + var dictionary = [NSObject:AnyObject]() + for (key, value) in self { + dictionary[key as! NSObject] = encodeIfPossible(value) + } + return dictionary } +} diff --git a/modules/swagger-codegen/src/main/resources/swift/Models.mustache b/modules/swagger-codegen/src/main/resources/swift/Models.mustache index 9e343d9f05a..37c497ddcb9 100644 --- a/modules/swagger-codegen/src/main/resources/swift/Models.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/Models.mustache @@ -7,132 +7,118 @@ import Foundation protocol JSONEncodable { -func encode() -> AnyObject + func encode() -> AnyObject } -class Response - { +class Response { let statusCode: Int let header: [String: String] let body: T init(statusCode: Int, header: [String: String], body: T) { - self.statusCode = statusCode - self.header = header - self.body = body + self.statusCode = statusCode + self.header = header + self.body = body } convenience init(response: NSHTTPURLResponse, body: T) { - let rawHeader = response.allHeaderFields - var header = [String:String]() - for (key, value) in rawHeader { - header[key as! String] = value as? String - } - self.init(statusCode: response.statusCode, header: header, body: body) - } + let rawHeader = response.allHeaderFields + var header = [String:String]() + for (key, value) in rawHeader { + header[key as! String] = value as? String + } + self.init(statusCode: response.statusCode, header: header, body: body) } +} - private var once = dispatch_once_t() - class Decoders { - static private var decoders = Dictionary - AnyObject)>() - - static func addDecoder - (#clazz: T.Type, decoder: ((AnyObject) -> T)) { +private var once = dispatch_once_t() +class Decoders { + static private var decoders = Dictionary AnyObject)>() + + static func addDecoder(#clazz: T.Type, decoder: ((AnyObject) -> T)) { let key = "\(T.self)" decoders[key] = { decoder($0) as! AnyObject } - } - - static func decode - (#clazz: [T].Type, source: AnyObject) -> [T] { - let array = source as! [AnyObject] - return array.map { Decoders.decode(clazz: T.self, source: $0) } - } - - static func decode - (#clazz: [Key:T].Type, source: AnyObject) -> [Key:T] { - let sourceDictinoary = source as! [Key: AnyObject] - var dictionary = [Key:T]() - for (key, value) in sourceDictinoary { + } + + static func decode(#clazz: [T].Type, source: AnyObject) -> [T] { + let array = source as! [AnyObject] + return array.map { Decoders.decode(clazz: T.self, source: $0) } + } + + static func decode(#clazz: [Key:T].Type, source: AnyObject) -> [Key:T] { + let sourceDictinoary = source as! [Key: AnyObject] + var dictionary = [Key:T]() + for (key, value) in sourceDictinoary { dictionary[key] = Decoders.decode(clazz: T.self, source: value) - } - return dictionary - } + } + return dictionary + } + + static func decode(#clazz: T.Type, source: AnyObject) -> T { + initialize() + if source is T { + return source as! T + } + + let key = "\(T.self)" + if let decoder = decoders[key] { + return decoder(source) as! T + } else { + fatalError("Source \(source) is not convertible to type \(clazz): Maybe swagger file is insufficient") + } + } - static func decode - (#clazz: T.Type, source: AnyObject) -> T { - initialize() - if source is T { - return source as! T + static func decodeOptional(#clazz: T.Type, source: AnyObject?) -> T? { + if source is NSNull { + return nil + } + return source.map { (source: AnyObject) -> T in + Decoders.decode(clazz: clazz, source: source) + } + } + + static func decodeOptional(#clazz: [T].Type, source: AnyObject?) -> [T]? { + if source is NSNull { + return nil + } + return source.map { (someSource: AnyObject) -> [T] in + Decoders.decode(clazz: clazz, source: someSource) + } + } + + static func decodeOptional(#clazz: [Key:T].Type, source: AnyObject?) -> [Key:T]? { + if source is NSNull { + return nil + } + return source.map { (someSource: AnyObject) -> [Key:T] in + Decoders.decode(clazz: clazz, source: someSource) + } + } + + static private func initialize() { + dispatch_once(&once) { + let dateTimeFormatter = NSDateFormatter() + dateTimeFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'" + let dateFormatter = NSDateFormatter() + dateFormatter.dateFormat = "yyyy-MM-dd" + // Decoder for NSDate + Decoders.addDecoder(clazz: NSDate.self) { (source: AnyObject) -> NSDate in + let sourceString = source as! String + if count(sourceString) == 10 { + return dateFormatter.dateFromString(sourceString)! } + return dateTimeFormatter.dateFromString(sourceString)! + } {{#models}}{{#model}} - let key = "\(T.self)" - if let decoder = decoders[key] { - return decoder(source) as! T - } else { - fatalError("Source \(source) is not convertible to type \(clazz): Maybe swagger file is insufficient") - } - } - - static func decodeOptional - (#clazz: T.Type, source: AnyObject?) -> T? { - if source is NSNull { - return nil - } - return source.map { (source: AnyObject) -> T in - Decoders.decode(clazz: clazz, source: source) - } - } - - static func decodeOptional - (#clazz: [T].Type, source: AnyObject?) -> [T]? { - if source is NSNull { - return nil - } - return source.map { (someSource: AnyObject) -> [T] in - Decoders.decode(clazz: clazz, source: someSource) - } - } - - static func decodeOptional - (#clazz: [Key:T].Type, source: AnyObject?) -> [Key:T]? { - if source is NSNull { - return nil - } - return source.map { (someSource: AnyObject) -> [Key:T] in - Decoders.decode(clazz: clazz, source: someSource) - } - } - - static private func initialize() { - dispatch_once(&once) { - let dateTimeFormatter = NSDateFormatter() - dateTimeFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'" - let dateFormatter = NSDateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd" - // Decoder for NSDate - Decoders.addDecoder(clazz: NSDate.self) { (source: AnyObject) -> NSDate in - let sourceString = source as! String - if count(sourceString) == 10 { - return dateFormatter.dateFromString(sourceString)! - } - return dateTimeFormatter.dateFromString(sourceString)! - } {{#models}}{{#model}} - - // Decoder for {{{classname}}} - Decoders.addDecoder(clazz: {{{classname}}}.self) { (source: AnyObject) -> {{{classname}}} in - let sourceDictionary = source as! [NSObject:AnyObject] - var instance = {{classname}}(){{#vars}}{{#isEnum}} - instance.{{name}} = (sourceDictionary["{{name}}"] as? String).map { {{classname}} - .{{datatypeWithEnum}}(rawValue: $0)! }{{#required}}!{{/required}} {{/isEnum}}{{^isEnum}} - instance.{{name}} = Decoders.decode{{^required}}Optional{{/required}}(clazz: {{{baseType}}} - .self, source: sourceDictionary["{{name}}"]{{#required}}!{{/required}}){{/isEnum}}{{/vars}} - return instance - }{{/model}} - {{/models}} - } - } - } + // Decoder for {{{classname}}} + Decoders.addDecoder(clazz: {{{classname}}}.self) { (source: AnyObject) -> {{{classname}}} in + let sourceDictionary = source as! [NSObject:AnyObject] + var instance = {{classname}}(){{#vars}}{{#isEnum}} + instance.{{name}} = (sourceDictionary["{{name}}"] as? String).map { {{classname}}.{{datatypeWithEnum}}(rawValue: $0)! }{{#required}}!{{/required}} {{/isEnum}}{{^isEnum}} + instance.{{name}} = Decoders.decode{{^required}}Optional{{/required}}(clazz: {{{baseType}}}.self, source: sourceDictionary["{{name}}"]{{#required}}!{{/required}}){{/isEnum}}{{/vars}} + return instance + }{{/model}} + {{/models}} + } + } +} diff --git a/modules/swagger-codegen/src/main/resources/swift/api.mustache b/modules/swagger-codegen/src/main/resources/swift/api.mustache index 27c93f150b5..e24bdae6773 100644 --- a/modules/swagger-codegen/src/main/resources/swift/api.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/api.mustache @@ -9,54 +9,43 @@ import Alamofire import PromiseKit extension {{projectName}}API { -{{#description}} + {{#description}} /** {{description}} */{{/description}} -class {{classname}}: APIBase { -{{#operation}} - /** - {{#summary}} - {{{summary}}} - {{/summary}} - - {{httpMethod}} {{path}}{{#notes}} - - {{{notes}}}{{/notes}}{{#subresourceOperation}} - - subresourceOperation: {{subresourceOperation}}{{/subresourceOperation}}{{#defaultResponse}} - - defaultResponse: {{defaultResponse}}{{/defaultResponse}}{{#authMethods}} - - authMethods: {{authMethods}}{{/authMethods}}{{#responseHeaders}} - - responseHeaders: {{responseHeaders}}{{/responseHeaders}}{{#examples}} - - examples: {{{examples}}}{{/examples}}{{#externalDocs}} - - externalDocs: {{externalDocs}}{{/externalDocs}}{{#hasParams}} - {{/hasParams}}{{#allParams}} - :param: {{paramName}} ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}} + class {{classname}}: APIBase { + {{#operation}} + /** + {{#summary}} + {{{summary}}} + {{/summary}} + - {{httpMethod}} {{path}}{{#notes}} + - {{{notes}}}{{/notes}}{{#subresourceOperation}} + - subresourceOperation: {{subresourceOperation}}{{/subresourceOperation}}{{#defaultResponse}} + - defaultResponse: {{defaultResponse}}{{/defaultResponse}}{{#authMethods}} + - authMethods: {{authMethods}}{{/authMethods}}{{#responseHeaders}} + - responseHeaders: {{responseHeaders}}{{/responseHeaders}}{{#examples}} + - examples: {{{examples}}}{{/examples}}{{#externalDocs}} + - externalDocs: {{externalDocs}}{{/externalDocs}}{{#hasParams}} + {{/hasParams}}{{#allParams}} + :param: {{paramName}} ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}}{{/allParams}} - :returns: Promise - > {{description}} - */ - func {{operationId}}({{#allParams}}{{^secondaryParam}}#{{/secondaryParam}}{{paramName}} - : {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder - <{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> { - {{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = - "{{path}}"{{#pathParams}} - path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", withString: - "\({{paramName}})", options: .LiteralSearch, range: nil){{/pathParams}} - let url = {{projectName}}API.basePath + path - {{#bodyParam}} - let parameters = {{paramName}}{{^required}}?{{/required}}.encode() as? - [String:AnyObject]{{/bodyParam}}{{^bodyParam}} - let nillableParameters: [String:AnyObject?] = {{^queryParams}} - [:]{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}} - "{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}} - ]{{/hasMore}}{{/queryParams}} + :returns: Promise> {{description}} + */ + func {{operationId}}({{#allParams}}{{^secondaryParam}}#{{/secondaryParam}}{{paramName}}: {{{dataType}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> { + {{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{path}}"{{#pathParams}} + path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%paramName%>}<%={{ }}=%>", withString: "\({{paramName}})", options: .LiteralSearch, range: nil){{/pathParams}} + let url = {{projectName}}API.basePath + path + {{#bodyParam}} + let parameters = {{paramName}}{{^required}}?{{/required}}.encode() as? [String:AnyObject]{{/bodyParam}}{{^bodyParam}} + let nillableParameters: [String:AnyObject?] = {{^queryParams}}[:]{{/queryParams}}{{#queryParams}}{{^secondaryParam}}[{{/secondaryParam}} + "{{paramName}}": {{paramName}}{{#hasMore}},{{/hasMore}}{{^hasMore}} + ]{{/hasMore}}{{/queryParams}} let parameters = APIHelper.rejectNil(nillableParameters){{/bodyParam}} - let requestBuilder: RequestBuilder - <{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}} - API.requestBuilderFactory.getBuilder() + let requestBuilder: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}>.Type = {{projectName}}API.requestBuilderFactory.getBuilder() - return requestBuilder(method: "{{httpMethod}}", URLString: url, parameters: parameters, isBody: {{^queryParams}} - true{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}}) + return requestBuilder(method: "{{httpMethod}}", URLString: url, parameters: parameters, isBody: {{^queryParams}}true{{/queryParams}}{{#queryParams}}{{^secondaryParam}}false{{/secondaryParam}}{{/queryParams}}) } -{{/operation}} - } + {{/operation}} } +} {{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/swift/model.mustache b/modules/swagger-codegen/src/main/resources/swift/model.mustache index c868cfe7b0d..a964882c97c 100644 --- a/modules/swagger-codegen/src/main/resources/swift/model.mustache +++ b/modules/swagger-codegen/src/main/resources/swift/model.mustache @@ -9,27 +9,27 @@ import Foundation {{#description}} - /** {{description}} */{{/description}} +/** {{description}} */{{/description}} class {{classname}}: JSONEncodable { {{#vars}}{{#isEnum}} enum {{datatypeWithEnum}}: String { {{#allowableValues}}{{#values}} case {{enum}} = "{{raw}}"{{/values}}{{/allowableValues}} } -{{/isEnum}}{{/vars}} -{{#vars}}{{#isEnum}}{{#description}}/** {{description}} */ -{{/description}}var {{name}}: {{{datatypeWithEnum}}}{{^required}}?{{/required}}{{#required}}!{{/required}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{/isEnum}}{{^isEnum}}{{#description}}/** {{description}} */ -{{/description}}var {{name}}: {{{datatype}}}{{^required}}?{{/required}}{{#required}}!{{/required}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{/isEnum}} -{{/vars}} + {{/isEnum}}{{/vars}} + {{#vars}}{{#isEnum}}{{#description}}/** {{description}} */ + {{/description}}var {{name}}: {{{datatypeWithEnum}}}{{^required}}?{{/required}}{{#required}}!{{/required}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{/isEnum}}{{^isEnum}}{{#description}}/** {{description}} */ + {{/description}}var {{name}}: {{{datatype}}}{{^required}}?{{/required}}{{#required}}!{{/required}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{/isEnum}} + {{/vars}} -// MARK: JSONEncodable -func encode() -> AnyObject { -var nillableDictionary = [String:AnyObject?](){{#vars}}{{#isNotContainer}}{{#isPrimitiveType}}{{^isEnum}} - nillableDictionary["{{name}}"] = self.{{name}}{{/isEnum}}{{/isPrimitiveType}}{{#isEnum}} - nillableDictionary["{{name}}"] = self.{{name}}{{^required}}?{{/required}}.rawValue{{/isEnum}}{{^isPrimitiveType}} - nillableDictionary["{{name}}"] = self.{{name}}{{^required}}?{{/required}}.encode(){{/isPrimitiveType}}{{/isNotContainer}}{{#isContainer}} - nillableDictionary["{{name}}"] = self.{{name}}{{^required}}?{{/required}}.encode(){{/isContainer}}{{/vars}} -let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:] -return dictionary -} + // MARK: JSONEncodable + func encode() -> AnyObject { + var nillableDictionary = [String:AnyObject?](){{#vars}}{{#isNotContainer}}{{#isPrimitiveType}}{{^isEnum}} + nillableDictionary["{{name}}"] = self.{{name}}{{/isEnum}}{{/isPrimitiveType}}{{#isEnum}} + nillableDictionary["{{name}}"] = self.{{name}}{{^required}}?{{/required}}.rawValue{{/isEnum}}{{^isPrimitiveType}} + nillableDictionary["{{name}}"] = self.{{name}}{{^required}}?{{/required}}.encode(){{/isPrimitiveType}}{{/isNotContainer}}{{#isContainer}} + nillableDictionary["{{name}}"] = self.{{name}}{{^required}}?{{/required}}.encode(){{/isContainer}}{{/vars}} + let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:] + return dictionary + } }{{/model}} {{/models}}