forked from loafle/openapi-generator-original
[Swift] various improvements (#16481)
This commit is contained in:
@@ -101,13 +101,13 @@ extension NullEncodable: Codable where Wrapped: Codable {
|
||||
|
||||
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,18 +68,18 @@ import Foundation
|
||||
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ import Foundation
|
||||
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -332,8 +332,8 @@ private var credentialStore = SynchronizedDictionary<Int, URLCredential>()
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -101,13 +101,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ internal class Response<T> {
|
||||
|
||||
internal convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ internal class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionReques
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ internal struct Validator {
|
||||
internal static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ internal struct Validator {
|
||||
internal static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,13 +100,13 @@ open class Response<T> {
|
||||
|
||||
public convenience init(response: HTTPURLResponse, body: T, bodyData: Data?) {
|
||||
let rawHeader = response.allHeaderFields
|
||||
var header = [String: String]()
|
||||
var responseHeader = [String: String]()
|
||||
for (key, value) in rawHeader {
|
||||
if let key = key.base as? String, let value = value as? String {
|
||||
header[key] = value
|
||||
responseHeader[key] = value
|
||||
}
|
||||
}
|
||||
self.init(statusCode: response.statusCode, header: header, body: body, bodyData: bodyData)
|
||||
self.init(statusCode: response.statusCode, header: responseHeader, body: body, bodyData: bodyData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,8 +332,8 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
|
||||
default:
|
||||
|
||||
guard let unwrappedData = data, !unwrappedData.isEmpty else {
|
||||
if let E = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: E.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
if let expressibleByNilLiteralType = T.self as? ExpressibleByNilLiteral.Type {
|
||||
completion(.success(Response(response: httpResponse, body: expressibleByNilLiteralType.init(nilLiteral: ()) as! T, bodyData: data)))
|
||||
} else {
|
||||
completion(.failure(ErrorResponse.error(httpResponse.statusCode, nil, response, DecodableRequestBuilderError.emptyDataResponse)))
|
||||
}
|
||||
@@ -569,10 +569,9 @@ private class FormDataEncoding: ParameterEncoding {
|
||||
func mimeType(for url: URL) -> String {
|
||||
let pathExtension = url.pathExtension
|
||||
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
|
||||
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue(),
|
||||
let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
|
||||
return mimetype as String
|
||||
}
|
||||
return "application/octet-stream"
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & BinaryInteger>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
@@ -100,18 +100,18 @@ public struct Validator {
|
||||
public static func validate<T: Comparable & FloatingPoint>(_ numeric: T, against rule: NumericRule<T>) throws -> T {
|
||||
var error = ValidationError<NumericValidationErrorKind>(kinds: [])
|
||||
if let minium = rule.minimum {
|
||||
if !rule.exclusiveMinimum, !(minium <= numeric) {
|
||||
if !rule.exclusiveMinimum, minium > numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
if rule.exclusiveMinimum, !(minium < numeric) {
|
||||
if rule.exclusiveMinimum, minium >= numeric {
|
||||
error.kinds.insert(.minimum)
|
||||
}
|
||||
}
|
||||
if let maximum = rule.maximum {
|
||||
if !rule.exclusiveMaximum, !(numeric <= maximum) {
|
||||
if !rule.exclusiveMaximum, numeric > maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
if rule.exclusiveMaximum, !(numeric < maximum) {
|
||||
if rule.exclusiveMaximum, numeric >= maximum {
|
||||
error.kinds.insert(.maximum)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user