[Swift] Add option parameter to select response queue (#4591)

* Add queue parameter to API

* Apply queue to response function argument

* Update petstore sample

* Update all sample projects

Run ./bin/swift4-all.sh then remove unrelated diff.

* Refactor variable name

Rename queue to apiResponseQueue, because apiResponseQueue is more clear for explaining the context.
This commit is contained in:
seijin 2019-11-26 12:56:17 +09:00 committed by William Cheng
parent 2d22ae90fc
commit 2f26812982
14 changed files with 63 additions and 56 deletions

View File

@ -11,6 +11,7 @@ import Foundation
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static var credential: URLCredential? {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static var credential: URLCredential?
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static var customHeaders: [String:String] = [:] {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static var customHeaders: [String:String] = [:]
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static var apiResponseQueue: DispatchQueue = .main
} }
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class RequestBuilder<T> { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class RequestBuilder<T> {

View File

@ -157,7 +157,7 @@ private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManag
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -177,7 +177,7 @@ private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManag
) )
}) })
case is URL.Type: case is URL.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
do { do {
@ -227,7 +227,7 @@ private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManag
return return
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -246,7 +246,7 @@ private var managerStore = SynchronizedDictionary<String, Alamofire.SessionManag
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -359,7 +359,7 @@ fileprivate enum DownloadException : Error {
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -379,7 +379,7 @@ fileprivate enum DownloadException : Error {
) )
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -398,7 +398,7 @@ fileprivate enum DownloadException : Error {
) )
}) })
case is Data.Type: case is Data.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -418,7 +418,7 @@ fileprivate enum DownloadException : Error {
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse: DataResponse<Data>) in validatedRequest.responseData(queue: {{projectName}}API.apiResponseQueue, completionHandler: { (dataResponse: DataResponse<Data>) in
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {

View File

@ -11,6 +11,7 @@ open class PetstoreClientAPI {
public static var credential: URLCredential? public static var credential: URLCredential?
public static var customHeaders: [String: String] = [:] public static var customHeaders: [String: String] = [:]
public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
public static var apiResponseQueue: DispatchQueue = .main
} }
open class RequestBuilder<T> { open class RequestBuilder<T> {

View File

@ -156,7 +156,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -176,7 +176,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
case is URL.Type: case is URL.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
do { do {
@ -226,7 +226,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
return return
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -245,7 +245,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -358,7 +358,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -378,7 +378,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -397,7 +397,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Data.Type: case is Data.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -417,7 +417,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse: DataResponse<Data>) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse: DataResponse<Data>) in
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {

View File

@ -11,6 +11,7 @@ open class PetstoreClientAPI {
public static var credential: URLCredential? public static var credential: URLCredential?
public static var customHeaders: [String: String] = [:] public static var customHeaders: [String: String] = [:]
public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
public static var apiResponseQueue: DispatchQueue = .main
} }
open class RequestBuilder<T> { open class RequestBuilder<T> {

View File

@ -156,7 +156,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -176,7 +176,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
case is URL.Type: case is URL.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
do { do {
@ -226,7 +226,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
return return
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -245,7 +245,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -358,7 +358,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -378,7 +378,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -397,7 +397,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Data.Type: case is Data.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -417,7 +417,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse: DataResponse<Data>) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse: DataResponse<Data>) in
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {

View File

@ -11,6 +11,7 @@ open class PetstoreClientAPI {
public static var credential: URLCredential? public static var credential: URLCredential?
public static var customHeaders: [String: String] = [:] public static var customHeaders: [String: String] = [:]
public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
public static var apiResponseQueue: DispatchQueue = .main
} }
open class RequestBuilder<T> { open class RequestBuilder<T> {

View File

@ -156,7 +156,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -176,7 +176,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
case is URL.Type: case is URL.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
do { do {
@ -226,7 +226,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
return return
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -245,7 +245,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -358,7 +358,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -378,7 +378,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -397,7 +397,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Data.Type: case is Data.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -417,7 +417,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse: DataResponse<Data>) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse: DataResponse<Data>) in
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {

View File

@ -11,6 +11,7 @@ open class PetstoreClientAPI {
public static var credential: URLCredential? public static var credential: URLCredential?
public static var customHeaders: [String: String] = [:] public static var customHeaders: [String: String] = [:]
public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
public static var apiResponseQueue: DispatchQueue = .main
} }
open class RequestBuilder<T> { open class RequestBuilder<T> {

View File

@ -156,7 +156,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -176,7 +176,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
case is URL.Type: case is URL.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
do { do {
@ -226,7 +226,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
return return
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -245,7 +245,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -358,7 +358,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -378,7 +378,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -397,7 +397,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Data.Type: case is Data.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -417,7 +417,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse: DataResponse<Data>) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse: DataResponse<Data>) in
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {

View File

@ -11,6 +11,7 @@ open class PetstoreClientAPI {
public static var credential: URLCredential? public static var credential: URLCredential?
public static var customHeaders: [String: String] = [:] public static var customHeaders: [String: String] = [:]
public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
public static var apiResponseQueue: DispatchQueue = .main
} }
open class RequestBuilder<T> { open class RequestBuilder<T> {

View File

@ -156,7 +156,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -176,7 +176,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
case is URL.Type: case is URL.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
do { do {
@ -226,7 +226,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
return return
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -245,7 +245,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -358,7 +358,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -378,7 +378,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -397,7 +397,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Data.Type: case is Data.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -417,7 +417,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse: DataResponse<Data>) in validatedRequest.responseData(queue: PetstoreClientAPI.apiResponseQueue, completionHandler: { (dataResponse: DataResponse<Data>) in
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {

View File

@ -11,6 +11,7 @@ open class TestClientAPI {
public static var credential: URLCredential? public static var credential: URLCredential?
public static var customHeaders: [String: String] = [:] public static var customHeaders: [String: String] = [:]
public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory() public static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()
public static var apiResponseQueue: DispatchQueue = .main
} }
open class RequestBuilder<T> { open class RequestBuilder<T> {

View File

@ -156,7 +156,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: TestClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -176,7 +176,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
case is URL.Type: case is URL.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: TestClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
do { do {
@ -226,7 +226,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
return return
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: TestClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -245,7 +245,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: TestClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -358,7 +358,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
switch T.self { switch T.self {
case is String.Type: case is String.Type:
validatedRequest.responseString(completionHandler: { (stringResponse) in validatedRequest.responseString(queue: TestClientAPI.apiResponseQueue, completionHandler: { (stringResponse) in
cleanupRequest() cleanupRequest()
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
@ -378,7 +378,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Void.Type: case is Void.Type:
validatedRequest.responseData(completionHandler: { (voidResponse) in validatedRequest.responseData(queue: TestClientAPI.apiResponseQueue, completionHandler: { (voidResponse) in
cleanupRequest() cleanupRequest()
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
@ -397,7 +397,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
case is Data.Type: case is Data.Type:
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(queue: TestClientAPI.apiResponseQueue, completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if dataResponse.result.isFailure { if dataResponse.result.isFailure {
@ -417,7 +417,7 @@ open class AlamofireDecodableRequestBuilder<T: Decodable>: AlamofireRequestBuild
) )
}) })
default: default:
validatedRequest.responseData(completionHandler: { (dataResponse: DataResponse<Data>) in validatedRequest.responseData(queue: TestClientAPI.apiResponseQueue, completionHandler: { (dataResponse: DataResponse<Data>) in
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {