Skip to content
This repository has been archived by the owner on May 10, 2023. It is now read-only.

Commit

Permalink
Update to Alamofire 5.0.0.beta.1
Browse files Browse the repository at this point in the history
  • Loading branch information
rahul0x24 committed Dec 11, 2018
1 parent 9c4f48e commit 8e0f7ec
Show file tree
Hide file tree
Showing 19 changed files with 86 additions and 37 deletions.
2 changes: 1 addition & 1 deletion Cartfile
@@ -1 +1 @@
github "Alamofire/Alamofire" "alamofire5"
github "Alamofire/Alamofire" ~> 5.0.0
2 changes: 1 addition & 1 deletion Cartfile.resolved
@@ -1,3 +1,3 @@
github "Alamofire/Alamofire" "a8a2827f5c14c9168a0373e948e963d36edfdbc5"
github "Alamofire/Alamofire" "5.0.0.beta.1"
github "Quick/Nimble" "v7.3.0"
github "Quick/Quick" "v1.3.1"
2 changes: 1 addition & 1 deletion Carthage/Checkouts/Alamofire
Submodule Alamofire updated 273 files
1 change: 0 additions & 1 deletion Sources/Alamofire/RestofireRequest.swift
Expand Up @@ -8,7 +8,6 @@

import Foundation
import Alamofire
import Alamofire

class RestofireRequest {

Expand Down
4 changes: 2 additions & 2 deletions Sources/BaseRequestable/_Configurable.swift
Expand Up @@ -50,7 +50,7 @@ public protocol _Configurable {
var encoding: ParameterEncoding { get }

/// The HTTP headers.
var headers: [String : String]? { get }
var headers: HTTPHeaders? { get }

/// The request parameters.
var parameters: Any? { get }
Expand Down Expand Up @@ -96,7 +96,7 @@ public extension _Configurable {
}

/// `nil`
public var headers: [String: String]? {
public var headers: HTTPHeaders? {
return nil
}

Expand Down
5 changes: 4 additions & 1 deletion Sources/BaseRequestable/_Requestable.swift
Expand Up @@ -51,7 +51,10 @@ public extension _Requestable {
.compactMap { $0 }
.joined(separator: "/")

let allHeaders = headers + configuration.headers
var allHeaders = headers ?? HTTPHeaders()
configuration.headers.forEach { (header: HTTPHeader) in
allHeaders.add(header)
}
var request = try! URLRequest(url: url, method: method, headers: allHeaders)

let allQueryParameters = queryParameters + configuration.queryParameters
Expand Down
2 changes: 1 addition & 1 deletion Sources/Configuration/Configuration.swift
Expand Up @@ -42,7 +42,7 @@ public struct Configuration {
public var encoding: ParameterEncoding = JSONEncoding.default

/// The HTTP headers. `nil` by default.
public var headers: [String : String] = [:]
public var headers: HTTPHeaders = [:]

/// The request delegates. `empty` by default.
public var requestDelegates: [RequestDelegate] = []
Expand Down
59 changes: 59 additions & 0 deletions Sources/Configuration/Protocols/ResponseSerializable.swift
Expand Up @@ -56,3 +56,62 @@ public extension ResponseSerializable where Response == Data {
}

}

public class AnyResponseSerializer<Value>: ResponseSerializer {

/// A closure which can be used to serialize data responses.
public typealias DataSerializer = (_ request: URLRequest?, _ response: HTTPURLResponse?, _ data: Data?, _ error: Error?) throws -> Value
/// A closure which can be used to serialize download reponses.
public typealias DownloadSerializer = (_ request: URLRequest?, _ response: HTTPURLResponse?, _ fileURL: URL?, _ error: Error?) throws -> Value

let dataSerializer: DataSerializer
let downloadSerializer: DownloadSerializer?

/// Initializes the `ResponseSerializer` instance with the given serialize response closure.
///
/// - Parameters:
/// - dataSerializer: A `DataSerializer` closure.
/// - downloadSerializer: A `DownloadSerializer` closure.
public init(dataSerializer: @escaping DataSerializer, downloadSerializer: @escaping DownloadSerializer) {
self.dataSerializer = dataSerializer
self.downloadSerializer = downloadSerializer
}

/// Initialze the instance with a `DataSerializer` closure. Download serialization will fallback to a default
/// implementation.
///
/// - Parameters:
/// - dataSerializer: A `DataSerializer` closure.
public init(dataSerializer: @escaping DataSerializer) {
self.dataSerializer = dataSerializer
self.downloadSerializer = nil
}

public func serialize(request: URLRequest?, response: HTTPURLResponse?, data: Data?, error: Error?) throws -> Value {
return try dataSerializer(request, response, data, error)
}

public func serializeDownload(request: URLRequest?, response: HTTPURLResponse?, fileURL: URL?, error: Error?) throws -> Value {
return try downloadSerializer?(request, response, fileURL, error) ?? { (request, response, fileURL, error) in
guard error == nil else { throw error! }

guard let fileURL = fileURL else {
throw AFError.responseSerializationFailed(reason: .inputFileNil)
}

let data: Data
do {
data = try Data(contentsOf: fileURL)
} catch {
throw AFError.responseSerializationFailed(reason: .inputFileReadFailed(at: fileURL))
}

do {
return try serialize(request: request, response: response, data: data, error: error)
} catch {
throw error
}
}(request, response, fileURL, error)
}

}
2 changes: 1 addition & 1 deletion Tests/Alamofire/JSONDecodableResponseSerializerSpec.swift
Expand Up @@ -32,7 +32,7 @@ class JSONDecodableResponseSerializerSpec: BaseSpec {

// When
waitUntil(timeout: self.timeout) { done in
request.responseJSONDecodable(completionHandler: { (response: DataResponse<HTTPBin>) in
request.responseDecodable(completionHandler: { (response: DataResponse<HTTPBin>) in
defer { done() }

// Then
Expand Down
6 changes: 2 additions & 4 deletions Tests/AlamofireRequestable/ADataUploadableSpec.swift
Expand Up @@ -29,10 +29,8 @@ class ADataUploadableSpec: BaseSpec {

func prepare(_ request: URLRequest, requestable: ARequestable) -> URLRequest {
var request = request
let header = HTTPHeaders.authorization(username: "user", password: "password")
header.forEach {
request.setValue($0.value, forHTTPHeaderField: $0.key)
}
let header = HTTPHeader.authorization(username: "user", password: "password")
request.setValue(header.value, forHTTPHeaderField: header.name)
expect(request.value(forHTTPHeaderField: "Authorization"))
.to(equal("Basic dXNlcjpwYXNzd29yZA=="))
return request
Expand Down
6 changes: 2 additions & 4 deletions Tests/AlamofireRequestable/ADownloadableSpec.swift
Expand Up @@ -31,10 +31,8 @@ class ADownloadableSpec: BaseSpec {

func prepare(_ request: URLRequest, requestable: ARequestable) -> URLRequest {
var request = request
let header = HTTPHeaders.authorization(username: "user", password: "password")
header.forEach {
request.setValue($0.value, forHTTPHeaderField: $0.key)
}
let header = HTTPHeader.authorization(username: "user", password: "password")
request.setValue(header.value, forHTTPHeaderField: header.name)
expect(request.value(forHTTPHeaderField: "Authorization"))
.to(equal("Basic dXNlcjpwYXNzd29yZA=="))
return request
Expand Down
6 changes: 2 additions & 4 deletions Tests/AlamofireRequestable/AFileUploadableSpec.swift
Expand Up @@ -27,10 +27,8 @@ class AFileUploadableSpec: BaseSpec {

func prepare(_ request: URLRequest, requestable: ARequestable) -> URLRequest {
var request = request
let header = HTTPHeaders.authorization(username: "user", password: "password")
header.forEach {
request.setValue($0.value, forHTTPHeaderField: $0.key)
}
let header = HTTPHeader.authorization(username: "user", password: "password")
request.setValue(header.value, forHTTPHeaderField: header.name)
expect(request.value(forHTTPHeaderField: "Authorization"))
.to(equal("Basic dXNlcjpwYXNzd29yZA=="))
return request
Expand Down
6 changes: 2 additions & 4 deletions Tests/AlamofireRequestable/AMultipartUploadableSpec.swift
Expand Up @@ -32,10 +32,8 @@ class AMultipartUploadableSpec: BaseSpec {

func prepare(_ request: URLRequest, requestable: ARequestable) -> URLRequest {
var request = request
let header = HTTPHeaders.authorization(username: "user", password: "password")
header.forEach {
request.setValue($0.value, forHTTPHeaderField: $0.key)
}
let header = HTTPHeader.authorization(username: "user", password: "password")
request.setValue(header.value, forHTTPHeaderField: header.name)
expect(request.value(forHTTPHeaderField: "Authorization"))
.to(equal("Basic dXNlcjpwYXNzd29yZA=="))
return request
Expand Down
6 changes: 2 additions & 4 deletions Tests/AlamofireRequestable/ARequestableSpec.swift
Expand Up @@ -26,10 +26,8 @@ class ARequestableSpec: BaseSpec {

func prepare(_ request: URLRequest, requestable: ARequestable) -> URLRequest {
var request = request
let header = HTTPHeaders.authorization(username: "user", password: "password")
header.forEach {
request.setValue($0.value, forHTTPHeaderField: $0.key)
}
let header = HTTPHeader.authorization(username: "user", password: "password")
request.setValue(header.value, forHTTPHeaderField: header.name)
expect(request.value(forHTTPHeaderField: "Authorization"))
.to(equal("Basic dXNlcjpwYXNzd29yZA=="))
return request
Expand Down
6 changes: 2 additions & 4 deletions Tests/AlamofireRequestable/AStreamUploadableSpec.swift
Expand Up @@ -27,10 +27,8 @@ class AStreamUploadableSpec: BaseSpec {

func prepare(_ request: URLRequest, requestable: ARequestable) -> URLRequest {
var request = request
let header = HTTPHeaders.authorization(username: "user", password: "password")
header.forEach {
request.setValue($0.value, forHTTPHeaderField: $0.key)
}
let header = HTTPHeader.authorization(username: "user", password: "password")
request.setValue(header.value, forHTTPHeaderField: header.name)
expect(request.value(forHTTPHeaderField: "Authorization"))
.to(equal("Basic dXNlcjpwYXNzd29yZA=="))
return request
Expand Down
2 changes: 1 addition & 1 deletion Tests/Configuration/ResponseSerializerSpec.swift
Expand Up @@ -88,7 +88,7 @@ class ResponseSerializerSpec: BaseSpec {
struct Service: Requestable {
typealias Response = HTTPBin
var responseSerializer: AnyResponseSerializer<Result<Response>> = AnyResponseSerializer<Result<Response>>.init(dataSerializer: { (request, response, data, error) -> Result<Response> in
return Result { try JSONDecodableResponseSerializer().serialize(request: request,
return Result { try DecodableResponseSerializer().serialize(request: request,
response: response,
data: data,
error: error)}
Expand Down
2 changes: 1 addition & 1 deletion Tests/Requestable/DownloadableSpec.swift
Expand Up @@ -33,7 +33,7 @@ class DownloadableSpec: BaseSpec {
var path: String? = "get"
var destination: DownloadRequest.Destination? = { _, _ in (BaseSpec.jsonFileURL, []) }
var responseSerializer: AnyResponseSerializer<Result<Response>> = AnyResponseSerializer<Result<Response>>.init(dataSerializer: { (request, response, data, error) -> Result<Response> in
return Result { try JSONDecodableResponseSerializer().serialize(request: request,
return Result { try DecodableResponseSerializer().serialize(request: request,
response: response,
data: data,
error: error)}
Expand Down
2 changes: 1 addition & 1 deletion Tests/Requestable/MultipartUploadableSpec.swift
Expand Up @@ -35,7 +35,7 @@ class MultipartUploadableSpec: BaseSpec {
struct Upload: MultipartUploadable {
typealias Response = HTTPBin
var responseSerializer: AnyResponseSerializer<Result<Response>> = AnyResponseSerializer<Result<Response>>.init(dataSerializer: { (request, response, data, error) -> Result<Response> in
return Result { try JSONDecodableResponseSerializer().serialize(request: request,
return Result { try DecodableResponseSerializer().serialize(request: request,
response: response,
data: data,
error: error)}
Expand Down
2 changes: 1 addition & 1 deletion Tests/Requestable/RequestableSpec.swift
Expand Up @@ -32,7 +32,7 @@ class RequestableSpec: BaseSpec {

var path: String? = "get"
var responseSerializer: AnyResponseSerializer<Result<Response>> = AnyResponseSerializer<Result<Response>>.init(dataSerializer: { (request, response, data, error) -> Result<Response> in
return Result { try JSONDecodableResponseSerializer().serialize(request: request,
return Result { try DecodableResponseSerializer().serialize(request: request,
response: response,
data: data,
error: error)}
Expand Down

0 comments on commit 8e0f7ec

Please sign in to comment.