Skip to content

Commit ac102a3

Browse files
committed
Merge pull request #2405 from wing328/bug/swift_propert_name
[Swift] use baseName for swift model property
2 parents b65d444 + 9525d67 commit ac102a3

File tree

7 files changed

+17
-10
lines changed

7 files changed

+17
-10
lines changed

modules/swagger-codegen/src/main/resources/swift/Models.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ class Decoders {
132132
Decoders.addDecoder(clazz: {{{classname}}}.self) { (source: AnyObject) -> {{{classname}}} in
133133
let sourceDictionary = source as! [NSObject:AnyObject]
134134
let instance = {{classname}}(){{#vars}}{{#isEnum}}
135-
instance.{{name}} = {{classname}}.{{datatypeWithEnum}}(rawValue: (sourceDictionary["{{name}}"] as? String) ?? ""){{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}} {{/isEnum}}{{^isEnum}}
136-
instance.{{name}} = Decoders.decode{{^unwrapRequired}}Optional{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}Optional{{/required}}{{/unwrapRequired}}(clazz: {{{baseType}}}.self, source: sourceDictionary["{{name}}"]{{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}}){{/isEnum}}{{/vars}}
135+
instance.{{name}} = {{classname}}.{{datatypeWithEnum}}(rawValue: (sourceDictionary["{{baseName}}"] as? String) ?? ""){{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}} {{/isEnum}}{{^isEnum}}
136+
instance.{{name}} = Decoders.decode{{^unwrapRequired}}Optional{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}Optional{{/required}}{{/unwrapRequired}}(clazz: {{{baseType}}}.self, source: sourceDictionary["{{baseName}}"]{{#unwrapRequired}}{{#required}}!{{/required}}{{/unwrapRequired}}){{/isEnum}}{{/vars}}
137137
return instance
138138
}{{/model}}
139139
{{/models}}

modules/swagger-codegen/src/main/resources/swift/model.mustache

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ public class {{classname}}: JSONEncodable {
2626
// MARK: JSONEncodable
2727
func encodeToJSON() -> AnyObject {
2828
var nillableDictionary = [String:AnyObject?](){{#vars}}{{#isNotContainer}}{{#isPrimitiveType}}{{^isEnum}}
29-
nillableDictionary["{{name}}"] = self.{{name}}{{/isEnum}}{{/isPrimitiveType}}{{#isEnum}}
30-
nillableDictionary["{{name}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.rawValue{{/isEnum}}{{^isPrimitiveType}}
31-
nillableDictionary["{{name}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isPrimitiveType}}{{/isNotContainer}}{{#isContainer}}
32-
nillableDictionary["{{name}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isContainer}}{{/vars}}
29+
nillableDictionary["{{baseName}}"] = self.{{name}}{{/isEnum}}{{/isPrimitiveType}}{{#isEnum}}
30+
nillableDictionary["{{baseName}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.rawValue{{/isEnum}}{{^isPrimitiveType}}
31+
nillableDictionary["{{baseName}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isPrimitiveType}}{{/isNotContainer}}{{#isContainer}}
32+
nillableDictionary["{{baseName}}"] = self.{{name}}{{^unwrapRequired}}?{{/unwrapRequired}}{{#unwrapRequired}}{{^required}}?{{/required}}{{/unwrapRequired}}.encodeToJSON(){{/isContainer}}{{/vars}}
3333
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
3434
return dictionary
3535
}

modules/swagger-codegen/src/test/resources/2_0/petstore.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1318,6 +1318,10 @@
13181318
"name": {
13191319
"type": "integer",
13201320
"format": "int32"
1321+
},
1322+
"snake_case": {
1323+
"type": "integer",
1324+
"format": "int32"
13211325
}
13221326
},
13231327
"xml": {

samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/Models.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ class Decoders {
177177
Decoders.addDecoder(clazz: ModelReturn.self) { (source: AnyObject) -> ModelReturn in
178178
let sourceDictionary = source as! [NSObject:AnyObject]
179179
let instance = ModelReturn()
180-
instance._return = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["_return"])
180+
instance._return = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["return"])
181181
return instance
182182
}
183183

@@ -191,6 +191,7 @@ class Decoders {
191191
let sourceDictionary = source as! [NSObject:AnyObject]
192192
let instance = Name()
193193
instance.name = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["name"])
194+
instance.snakeCase = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["snake_case"])
194195
return instance
195196
}
196197

@@ -239,7 +240,7 @@ class Decoders {
239240
Decoders.addDecoder(clazz: SpecialModelName.self) { (source: AnyObject) -> SpecialModelName in
240241
let sourceDictionary = source as! [NSObject:AnyObject]
241242
let instance = SpecialModelName()
242-
instance.specialPropertyName = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["specialPropertyName"])
243+
instance.specialPropertyName = Decoders.decodeOptional(clazz: Int.self, source: sourceDictionary["$special[property.name]"])
243244
return instance
244245
}
245246

samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/Models/ModelReturn.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class ModelReturn: JSONEncodable {
1818
// MARK: JSONEncodable
1919
func encodeToJSON() -> AnyObject {
2020
var nillableDictionary = [String:AnyObject?]()
21-
nillableDictionary["_return"] = self._return
21+
nillableDictionary["return"] = self._return
2222
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
2323
return dictionary
2424
}

samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/Models/Name.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Foundation
1111
public class Name: JSONEncodable {
1212

1313
public var name: Int?
14+
public var snakeCase: Int?
1415

1516

1617
public init() {}
@@ -19,6 +20,7 @@ public class Name: JSONEncodable {
1920
func encodeToJSON() -> AnyObject {
2021
var nillableDictionary = [String:AnyObject?]()
2122
nillableDictionary["name"] = self.name
23+
nillableDictionary["snake_case"] = self.snakeCase
2224
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
2325
return dictionary
2426
}

samples/client/petstore/swift/PetstoreClient/Classes/Swaggers/Models/SpecialModelName.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class SpecialModelName: JSONEncodable {
1818
// MARK: JSONEncodable
1919
func encodeToJSON() -> AnyObject {
2020
var nillableDictionary = [String:AnyObject?]()
21-
nillableDictionary["specialPropertyName"] = self.specialPropertyName
21+
nillableDictionary["$special[property.name]"] = self.specialPropertyName
2222
let dictionary: [String:AnyObject] = APIHelper.rejectNil(nillableDictionary) ?? [:]
2323
return dictionary
2424
}

0 commit comments

Comments
 (0)