Skip to content

Commit 5af788c

Browse files
DawidvanGraanwing328
authored andcommitted
[Swift4] Allow for custom dateformatter to be used (#6672)
* Add a custom dateformat to be set * Samples updated * Update CodableHelper.swift Change to correct format: decoder.dataDecodingStrategy = .base64 * Update CodableHelper.mustache Add `decoder.dataDecodingStrategy = .base64` back * Update CodableHelper.swift Fix `decoder.dataDecodingStrategy = .base64` * Update CodableHelper.swift Fix `decoder.dataDecodingStrategy = .base64`
1 parent b3133a2 commit 5af788c

File tree

4 files changed

+36
-12
lines changed

4 files changed

+36
-12
lines changed

modules/swagger-codegen/src/main/resources/swift4/CodableHelper.mustache

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,20 @@ public typealias EncodeResult = (data: Data?, error: Error?)
1111

1212
open class CodableHelper {
1313
14+
open static var dateformatter: DateFormatter?
15+
1416
open class func decode<T>(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable {
1517
var returnedDecodable: T? = nil
1618
var returnedError: Error? = nil
1719
1820
let decoder = JSONDecoder()
19-
decoder.dataDecodingStrategy = .base64
20-
if #available(iOS 10.0, *) {
21-
decoder.dateDecodingStrategy = .iso8601
21+
if let df = self.dateformatter {
22+
decoder.dateDecodingStrategy = .formatted(df)
23+
} else {
24+
decoder.dataDecodingStrategy = .base64
25+
if #available(iOS 10.0, *) {
26+
decoder.dateDecodingStrategy = .iso8601
27+
}
2228
}
2329

2430
do {

samples/client/petstore/swift4/default/PetstoreClient/Classes/Swaggers/CodableHelper.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,20 @@ public typealias EncodeResult = (data: Data?, error: Error?)
1111

1212
open class CodableHelper {
1313

14+
open static var dateformatter: DateFormatter?
15+
1416
open class func decode<T>(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable {
1517
var returnedDecodable: T? = nil
1618
var returnedError: Error? = nil
1719

1820
let decoder = JSONDecoder()
19-
decoder.dataDecodingStrategy = .base64
20-
if #available(iOS 10.0, *) {
21-
decoder.dateDecodingStrategy = .iso8601
21+
if let df = self.dateformatter {
22+
decoder.dateDecodingStrategy = .formatted(df)
23+
} else {
24+
decoder.dataDecodingStrategy = .base64
25+
if #available(iOS 10.0, *) {
26+
decoder.dateDecodingStrategy = .iso8601
27+
}
2228
}
2329

2430
do {

samples/client/petstore/swift4/promisekit/PetstoreClient/Classes/Swaggers/CodableHelper.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,20 @@ public typealias EncodeResult = (data: Data?, error: Error?)
1111

1212
open class CodableHelper {
1313

14+
open static var dateformatter: DateFormatter?
15+
1416
open class func decode<T>(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable {
1517
var returnedDecodable: T? = nil
1618
var returnedError: Error? = nil
1719

1820
let decoder = JSONDecoder()
19-
decoder.dataDecodingStrategy = .base64
20-
if #available(iOS 10.0, *) {
21-
decoder.dateDecodingStrategy = .iso8601
21+
if let df = self.dateformatter {
22+
decoder.dateDecodingStrategy = .formatted(df)
23+
} else {
24+
decoder.dataDecodingStrategy = .base64
25+
if #available(iOS 10.0, *) {
26+
decoder.dateDecodingStrategy = .iso8601
27+
}
2228
}
2329

2430
do {

samples/client/petstore/swift4/rxswift/PetstoreClient/Classes/Swaggers/CodableHelper.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,20 @@ public typealias EncodeResult = (data: Data?, error: Error?)
1111

1212
open class CodableHelper {
1313

14+
open static var dateformatter: DateFormatter?
15+
1416
open class func decode<T>(_ type: T.Type, from data: Data) -> (decodableObj: T?, error: Error?) where T : Decodable {
1517
var returnedDecodable: T? = nil
1618
var returnedError: Error? = nil
1719

1820
let decoder = JSONDecoder()
19-
decoder.dataDecodingStrategy = .base64
20-
if #available(iOS 10.0, *) {
21-
decoder.dateDecodingStrategy = .iso8601
21+
if let df = self.dateformatter {
22+
decoder.dateDecodingStrategy = .formatted(df)
23+
} else {
24+
decoder.dataDecodingStrategy = .base64
25+
if #available(iOS 10.0, *) {
26+
decoder.dateDecodingStrategy = .iso8601
27+
}
2228
}
2329

2430
do {

0 commit comments

Comments
 (0)