diff --git a/modules/openapi-generator/src/main/resources/swift4/api.mustache b/modules/openapi-generator/src/main/resources/swift4/api.mustache index ed4afe13a0ff..6e9b01c3cad6 100644 --- a/modules/openapi-generator/src/main/resources/swift4/api.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/api.mustache @@ -16,7 +16,7 @@ extension {{projectName}}API { {{#description}} /** {{description}} */{{/description}} -open class {{classname}} { +{{#objcCompatible}}@objc {{/objcCompatible}}open class {{classname}}{{#objcCompatible}} : NSObject{{/objcCompatible}} { {{#operation}} {{#allParams}} {{#isEnum}} @@ -40,17 +40,22 @@ open class {{classname}} { - parameter {{paramName}}: ({{#isFormParam}}form{{/isFormParam}}{{#isQueryParam}}query{{/isQueryParam}}{{#isPathParam}}path{{/isPathParam}}{{#isHeaderParam}}header{{/isHeaderParam}}{{#isBodyParam}}body{{/isBodyParam}}) {{description}} {{^required}}(optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}{{/allParams}} - parameter completion: completion handler to receive the data and the error objects */ - open class func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#hasParams}}, {{/hasParams}}completion: @escaping ((_ data: {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}?,_ error: Error?) -> Void)) { + {{#objcCompatible}}@objc {{/objcCompatible}}open class func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#hasParams}}, {{/hasParams}}completion: @escaping (({{#returnType}}_ data: {{{returnType}}}?,{{/returnType}}{{^returnType}}{{^objcCompatible}}_ data: Void?,{{/objcCompatible}}{{/returnType}}_ error: Error?) -> Void)) { {{operationId}}WithRequestBuilder({{#allParams}}{{paramName}}: {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}).execute { (response, error) -> Void in {{#returnType}} completion(response?.body, error) {{/returnType}} {{^returnType}} + {{#objcCompatible}} + completion(error) + {{/objcCompatible}} + {{^objcCompatible}} if error == nil { completion((), error) } else { completion(nil, error) } + {{/objcCompatible}} {{/returnType}} } } diff --git a/modules/openapi-generator/src/main/resources/swift4/modelObject.mustache b/modules/openapi-generator/src/main/resources/swift4/modelObject.mustache index d477ac7880d6..8e7afc4977d0 100644 --- a/modules/openapi-generator/src/main/resources/swift4/modelObject.mustache +++ b/modules/openapi-generator/src/main/resources/swift4/modelObject.mustache @@ -1,5 +1,5 @@ - -public struct {{classname}}: Codable { +{{#objcCompatible}}@objc public class {{classname}}: NSObject, Codable { {{/objcCompatible}} +{{^objcCompatible}}public struct {{classname}}: Codable { {{/objcCompatible}} {{#allVars}} {{#isEnum}} @@ -9,14 +9,14 @@ public struct {{classname}}: Codable { {{#allVars}} {{#isEnum}} {{#description}}/** {{description}} */ - {{/description}}public var {{name}}: {{{datatypeWithEnum}}}{{#unwrapRequired}}?{{/unwrapRequired}}{{^unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}} + {{/description}}{{#objcCompatible}}@objc {{/objcCompatible}}public var {{name}}: {{{datatypeWithEnum}}}{{#unwrapRequired}}?{{/unwrapRequired}}{{^unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}} {{/isEnum}} {{^isEnum}} {{#description}}/** {{description}} */ - {{/description}}public var {{name}}: {{{datatype}}}{{#unwrapRequired}}?{{/unwrapRequired}}{{^unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{#objcCompatible}}{{#vendorExtensions.x-swift-optional-scalar}} - public var {{name}}Num: NSNumber? { + {{/description}}{{#objcCompatible}}{{#required}}@objc {{/required}}{{^required}}{{^vendorExtensions.x-swift-optional-scalar}}@objc {{/vendorExtensions.x-swift-optional-scalar}}{{/required}}{{/objcCompatible}}public var {{name}}: {{{datatype}}}{{#unwrapRequired}}?{{/unwrapRequired}}{{^unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{#objcCompatible}}{{#vendorExtensions.x-swift-optional-scalar}} + @objc public var {{name}}Num: NSNumber? { get { - return {{name}}.map({ return NSNumber(value: $0) }) + return {{name}} as NSNumber? } }{{/vendorExtensions.x-swift-optional-scalar}}{{/objcCompatible}} {{/isEnum}}