Skip to content

Commit 4647a79

Browse files
committed
[Swift5][client] try to fix JsonEncondable
1 parent 5180047 commit 4647a79

33 files changed

Lines changed: 213 additions & 96 deletions

File tree

modules/openapi-generator/src/main/resources/swift5/Extensions.mustache

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,7 @@ extension Date: JSONEncodable {
6969

7070
extension JSONEncodable where Self: Encodable {
7171
func encodeToJSON() -> Any {
72-
let encoder = CodableHelper.jsonEncoder
73-
guard let data = try? encoder.encode(self) else {
74-
fatalError("Could not encode to json: \(self)")
75-
}
76-
return data.encodeToJSON()
72+
return self
7773
}
7874
}{{/useVapor}}{{#generateModelAdditionalProperties}}
7975

modules/openapi-generator/src/main/resources/swift5/libraries/alamofire/AlamofireImplementations.mustache

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,22 +102,30 @@ private var managerStore = SynchronizedDictionary<String, Alamofire.Session>()
102102
encoding = nil
103103
104104
let upload = manager.upload(multipartFormData: { mpForm in
105-
for (k, v) in self.parameters! {
106-
switch v {
105+
for (key, value) in self.parameters! {
106+
switch value {
107107
case let fileURL as URL:
108108
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
109-
mpForm.append(fileURL, withName: k, fileName: fileURL.lastPathComponent, mimeType: mimeType)
109+
mpForm.append(fileURL, withName: key, fileName: fileURL.lastPathComponent, mimeType: mimeType)
110110
} else {
111-
mpForm.append(fileURL, withName: k)
111+
mpForm.append(fileURL, withName: key)
112112
}
113113
case let string as String:
114-
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
114+
if let data = string.data(using: String.Encoding.utf8) {
115+
mpForm.append(data, withName: key)
116+
}
115117
case let number as NSNumber:
116-
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
118+
if let data = number.stringValue.data(using: String.Encoding.utf8) {
119+
mpForm.append(data, withName: key)
120+
}
117121
case let data as Data:
118-
mpForm.append(data, withName: k)
122+
mpForm.append(data, withName: key)
123+
case let jsonEncodable as JSONEncodable:
124+
if let data = try? CodableHelper.jsonEncoder.encode(jsonEncodable) {
125+
mpForm.append(data, withName: key)
126+
}
119127
default:
120-
fatalError("Unprocessable value \(v) with key \(k)")
128+
fatalError("Unprocessable value \(value) with key \(key)")
121129
}
122130
}
123131
}, to: URLString, method: xMethod, headers: nil)

modules/openapi-generator/src/main/resources/swift5/libraries/urlsession/URLSessionImplementations.mustache

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,17 @@ private class FormDataEncoding: ParameterEncoding {
486486
data: data
487487
)
488488

489+
case let jsonEncodable as JSONEncodable:
490+
491+
if let data = try? CodableHelper.jsonEncoder.encode(jsonEncodable) {
492+
urlRequest = configureDataUploadRequest(
493+
urlRequest: urlRequest,
494+
boundary: boundary,
495+
name: key,
496+
data: data
497+
)
498+
}
499+
489500
default:
490501
fatalError("Unprocessable value \(value) with key \(key)")
491502
}

samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,22 +102,30 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
102102
encoding = nil
103103

104104
let upload = manager.upload(multipartFormData: { mpForm in
105-
for (k, v) in self.parameters! {
106-
switch v {
105+
for (key, value) in self.parameters! {
106+
switch value {
107107
case let fileURL as URL:
108108
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
109-
mpForm.append(fileURL, withName: k, fileName: fileURL.lastPathComponent, mimeType: mimeType)
109+
mpForm.append(fileURL, withName: key, fileName: fileURL.lastPathComponent, mimeType: mimeType)
110110
} else {
111-
mpForm.append(fileURL, withName: k)
111+
mpForm.append(fileURL, withName: key)
112112
}
113113
case let string as String:
114-
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
114+
if let data = string.data(using: String.Encoding.utf8) {
115+
mpForm.append(data, withName: key)
116+
}
115117
case let number as NSNumber:
116-
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
118+
if let data = number.stringValue.data(using: String.Encoding.utf8) {
119+
mpForm.append(data, withName: key)
120+
}
117121
case let data as Data:
118-
mpForm.append(data, withName: k)
122+
mpForm.append(data, withName: key)
123+
case let jsonEncodable as JSONEncodable:
124+
if let data = try? CodableHelper.jsonEncoder.encode(jsonEncodable) {
125+
mpForm.append(data, withName: key)
126+
}
119127
default:
120-
fatalError("Unprocessable value \(v) with key \(k)")
128+
fatalError("Unprocessable value \(value) with key \(key)")
121129
}
122130
}
123131
}, to: URLString, method: xMethod, headers: nil)

samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,7 @@ extension Date: JSONEncodable {
6767

6868
extension JSONEncodable where Self: Encodable {
6969
func encodeToJSON() -> Any {
70-
let encoder = CodableHelper.jsonEncoder
71-
guard let data = try? encoder.encode(self) else {
72-
fatalError("Could not encode to json: \(self)")
73-
}
74-
return data.encodeToJSON()
70+
return self
7571
}
7672
}
7773

samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,7 @@ extension Date: JSONEncodable {
6767

6868
extension JSONEncodable where Self: Encodable {
6969
func encodeToJSON() -> Any {
70-
let encoder = CodableHelper.jsonEncoder
71-
guard let data = try? encoder.encode(self) else {
72-
fatalError("Could not encode to json: \(self)")
73-
}
74-
return data.encodeToJSON()
70+
return self
7571
}
7672
}
7773

samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,17 @@ private class FormDataEncoding: ParameterEncoding {
486486
data: data
487487
)
488488

489+
case let jsonEncodable as JSONEncodable:
490+
491+
if let data = try? CodableHelper.jsonEncoder.encode(jsonEncodable) {
492+
urlRequest = configureDataUploadRequest(
493+
urlRequest: urlRequest,
494+
boundary: boundary,
495+
name: key,
496+
data: data
497+
)
498+
}
499+
489500
default:
490501
fatalError("Unprocessable value \(value) with key \(key)")
491502
}

samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/Extensions.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,7 @@ extension Date: JSONEncodable {
6767

6868
extension JSONEncodable where Self: Encodable {
6969
func encodeToJSON() -> Any {
70-
let encoder = CodableHelper.jsonEncoder
71-
guard let data = try? encoder.encode(self) else {
72-
fatalError("Could not encode to json: \(self)")
73-
}
74-
return data.encodeToJSON()
70+
return self
7571
}
7672
}
7773

samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,17 @@ private class FormDataEncoding: ParameterEncoding {
486486
data: data
487487
)
488488

489+
case let jsonEncodable as JSONEncodable:
490+
491+
if let data = try? CodableHelper.jsonEncoder.encode(jsonEncodable) {
492+
urlRequest = configureDataUploadRequest(
493+
urlRequest: urlRequest,
494+
boundary: boundary,
495+
name: key,
496+
data: data
497+
)
498+
}
499+
489500
default:
490501
fatalError("Unprocessable value \(value) with key \(key)")
491502
}

samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/Extensions.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,7 @@ extension Date: JSONEncodable {
6767

6868
extension JSONEncodable where Self: Encodable {
6969
func encodeToJSON() -> Any {
70-
let encoder = CodableHelper.jsonEncoder
71-
guard let data = try? encoder.encode(self) else {
72-
fatalError("Could not encode to json: \(self)")
73-
}
74-
return data.encodeToJSON()
70+
return self
7571
}
7672
}
7773

0 commit comments

Comments
 (0)