[Swift][client] fix parameters encoding (#20934)

* [Swift][client] fix parameters encoding

* [Swift][client] fix parameters encoding
This commit is contained in:
Bruno Coelho 2025-03-20 12:29:58 +00:00 committed by GitHub
parent 6e3b1996ed
commit 22b678764c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 574 additions and 168 deletions

View File

@ -71,7 +71,7 @@ import Vapor{{/useVapor}}
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -11,22 +11,51 @@ import FoundationNetworking
@preconcurrency import PromiseKit{{/usePromiseKit}}{{#useVapor}}
import Vapor{{/useVapor}}{{^useVapor}}
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -10,22 +10,51 @@ import FoundationNetworking
#endif
@preconcurrency import PromiseKit
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -10,22 +10,51 @@ import FoundationNetworking
#endif
@preconcurrency import PromiseKit
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ internal struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
internal static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
internal static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}

View File

@ -70,7 +70,7 @@ public struct APIHelper {
/// maps all values from source to query parameters
///
/// explode attribute is respected: collection values might be either joined or split up into separate key value pairs
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: Any?, isExplode: Bool)]) -> [URLQueryItem]? {
public static func mapValuesToQueryItems(_ source: [String: (wrappedValue: (any Sendable)?, isExplode: Bool)]) -> [URLQueryItem]? {
let destination = source.filter { $0.value.wrappedValue != nil }.reduce(into: [URLQueryItem]()) { result, item in
if let collection = item.value.wrappedValue as? [Any?] {

View File

@ -9,22 +9,51 @@ import Foundation
import FoundationNetworking
#endif
extension Bool: QueryStringEncodable {}
extension Float: QueryStringEncodable {}
extension Int: QueryStringEncodable {}
extension Int32: QueryStringEncodable {}
extension Int64: QueryStringEncodable {}
extension Double: QueryStringEncodable {}
extension Decimal: QueryStringEncodable {}
extension String: QueryStringEncodable {}
extension URL: QueryStringEncodable {}
extension UUID: QueryStringEncodable {}
extension QueryStringEncodable {
@_disfavoredOverload
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Bool: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Float: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int32: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Int64: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Double: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension Decimal: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension String: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension URL: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension UUID: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: self) }
}
extension RawRepresentable where RawValue: QueryStringEncodable {
func encodeToQueryString(codableHelper: CodableHelper) -> String { String(describing: rawValue) }
}