From 8149aac7ac7b7cf1bce33b842e17e1cfd3c7a766 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Sun, 19 Sep 2021 22:07:15 +0200 Subject: [PATCH] Add HostCallback --- AppleLibs/Network/Requests/DataManager.swift | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/AppleLibs/Network/Requests/DataManager.swift b/AppleLibs/Network/Requests/DataManager.swift index afaa9dc..07400ab 100644 --- a/AppleLibs/Network/Requests/DataManager.swift +++ b/AppleLibs/Network/Requests/DataManager.swift @@ -46,9 +46,11 @@ public class DataManager: NSObject, URLSessionDelegate self.context = context } } + + public typealias HostCallback = () -> Host private let timeout: TimeInterval - public private(set) var host: Host + public private(set) var hostCallback: HostCallback private lazy var urlSession: URLSession = { URLSession(configuration: .default, delegate: self, delegateQueue: OperationQueue.main) @@ -59,8 +61,12 @@ public class DataManager: NSObject, URLSessionDelegate public var delegate: DataManagerDelegate? - public init(host: Host, responseOkFilter: HttpSuccessFilter, responseFilters: [Int: HttpResponseFilter] = [:], timeout: TimeInterval = 10.0) { - self.host = host + public convenience init(host: Host, responseOkFilter: HttpSuccessFilter, responseFilters: [Int: HttpResponseFilter] = [:], timeout: TimeInterval = 10.0) { + self.init(hostCallback: { host }, responseOkFilter: responseOkFilter, responseFilters: responseFilters, timeout: timeout) + } + + public required init(hostCallback: @escaping HostCallback, responseOkFilter: HttpSuccessFilter, responseFilters: [Int: HttpResponseFilter] = [:], timeout: TimeInterval = 10.0) { + self.hostCallback = hostCallback self.responseOkFilter = responseOkFilter self.responseFilters = responseFilters self.timeout = timeout @@ -68,6 +74,7 @@ public class DataManager: NSObject, URLSessionDelegate } public func url(username: String = "", password: String = "", path: String) -> String { + let host = hostCallback() var url: String = host.protocol if !username.isEmpty || !password.isEmpty { -- GitLab