diff --git a/modules/openapi-generator/src/main/resources/swift5/APIHelper.mustache b/modules/openapi-generator/src/main/resources/swift5/APIHelper.mustache index 2111f340881..d4583787564 100644 --- a/modules/openapi-generator/src/main/resources/swift5/APIHelper.mustache +++ b/modules/openapi-generator/src/main/resources/swift5/APIHelper.mustache @@ -62,6 +62,8 @@ import Vapor{{/useVapor}} return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/modules/openapi-generator/src/main/resources/swift5/OpenAPIDateWithoutTime.mustache b/modules/openapi-generator/src/main/resources/swift5/OpenAPIDateWithoutTime.mustache index ff51e00b7f9..5a0c0b0d6fb 100644 --- a/modules/openapi-generator/src/main/resources/swift5/OpenAPIDateWithoutTime.mustache +++ b/modules/openapi-generator/src/main/resources/swift5/OpenAPIDateWithoutTime.mustache @@ -81,3 +81,18 @@ extension OpenAPIDateWithoutTime: JSONEncodable { return OpenISO8601DateFormatter.withoutTime.string(from: self.normalizedWrappedDate()) } } + +extension OpenAPIDateWithoutTime: RawRepresentable { + public typealias RawValue = String + public init?(rawValue: String) { + if let date = OpenISO8601DateFormatter.withoutTime.date(from: rawValue) { + self.init(wrappedDate: date) + } else { + return nil + } + } + + public var rawValue: String { + OpenISO8601DateFormatter.withoutTime.string(from: normalizedWrappedDate()) + } +} \ No newline at end of file diff --git a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/OpenAPIDateWithoutTime.swift b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/OpenAPIDateWithoutTime.swift index 3cbc5a18912..57f3ecca372 100644 --- a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/OpenAPIDateWithoutTime.swift +++ b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/OpenAPIDateWithoutTime.swift @@ -81,3 +81,18 @@ extension OpenAPIDateWithoutTime: JSONEncodable { return OpenISO8601DateFormatter.withoutTime.string(from: self.normalizedWrappedDate()) } } + +extension OpenAPIDateWithoutTime: RawRepresentable { + public typealias RawValue = String + public init?(rawValue: String) { + if let date = OpenISO8601DateFormatter.withoutTime.date(from: rawValue) { + self.init(wrappedDate: date) + } else { + return nil + } + } + + public var rawValue: String { + OpenISO8601DateFormatter.withoutTime.string(from: normalizedWrappedDate()) + } +} \ No newline at end of file diff --git a/samples/client/petstore/swift5/anycodableLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/anycodableLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/anycodableLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/anycodableLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/frozenEnums/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/frozenEnums/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/frozenEnums/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/frozenEnums/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 0859be7e994..cf437d75dec 100644 --- a/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ internal struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/APIHelper.swift b/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/APIHelper.swift +++ b/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/validation/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/validation/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/validation/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/validation/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source } diff --git a/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/APIHelper.swift b/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/APIHelper.swift index 6dd1b44cb36..7c975bb6c9b 100644 --- a/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/APIHelper.swift +++ b/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/APIHelper.swift @@ -61,6 +61,8 @@ public struct APIHelper { return collection .compactMap { value in convertAnyToString(value) } .joined(separator: ",") + } else if let value = source as? any RawRepresentable { + return "\(value.rawValue)" } return source }