mirror of
https://github.com/jphong1111/awesome-ios-developer.git
synced 2024-12-22 22:15:43 +07:00
Update ParameterEncoding.swift
This commit is contained in:
parent
21af3d0920
commit
274174ccdf
@ -7,47 +7,9 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
public typealias Parameters = [String:Any]
|
||||
typealias Parameters = [String: Any]
|
||||
|
||||
public protocol ParameterEncoder {
|
||||
func encode(urlRequest: inout URLRequest, with parameters: Parameters) throws
|
||||
}
|
||||
|
||||
public enum ParameterEncoding {
|
||||
|
||||
case urlEncoding
|
||||
case jsonEncoding
|
||||
case urlAndJsonEncoding
|
||||
|
||||
public func encode(urlRequest: inout URLRequest,
|
||||
bodyParameters: Parameters?,
|
||||
urlParameters: Parameters?) throws {
|
||||
do {
|
||||
switch self {
|
||||
case .urlEncoding:
|
||||
guard let urlParameters = urlParameters else { return }
|
||||
try URLParameterEncoder().encode(urlRequest: &urlRequest, with: urlParameters)
|
||||
|
||||
case .jsonEncoding:
|
||||
guard let bodyParameters = bodyParameters else { return }
|
||||
try JSONParameterEncoder().encode(urlRequest: &urlRequest, with: bodyParameters)
|
||||
|
||||
case .urlAndJsonEncoding:
|
||||
guard let bodyParameters = bodyParameters,
|
||||
let urlParameters = urlParameters else { return }
|
||||
try URLParameterEncoder().encode(urlRequest: &urlRequest, with: urlParameters)
|
||||
try JSONParameterEncoder().encode(urlRequest: &urlRequest, with: bodyParameters)
|
||||
|
||||
}
|
||||
}catch {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public enum NetworkError : String, Error {
|
||||
case parametersNil = "Parameters were nil."
|
||||
case encodingFailed = "Parameter encoding failed."
|
||||
case missingURL = "URL is nil."
|
||||
protocol ParameterEncoder {
|
||||
static func encode(urlRequest: inout URLRequest,
|
||||
with parameters: Parameters) throws
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user