diff --git a/LeadKitAdditions.podspec b/LeadKitAdditions.podspec index 78bd9b7..a882fff 100644 --- a/LeadKitAdditions.podspec +++ b/LeadKitAdditions.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "LeadKitAdditions" - s.version = "0.0.2" + s.version = "0.0.3" s.summary = "iOS framework with a bunch of tools for rapid development" s.homepage = "https://github.com/NikAshanin/LeadKitAdditions" s.license = "Apache License, Version 2.0" diff --git a/LeadKitAdditions/LeadKitAdditions/Classes/DefaultNetworkService.swift b/LeadKitAdditions/LeadKitAdditions/Classes/DefaultNetworkService.swift index 51bf142..3b5b057 100644 --- a/LeadKitAdditions/LeadKitAdditions/Classes/DefaultNetworkService.swift +++ b/LeadKitAdditions/LeadKitAdditions/Classes/DefaultNetworkService.swift @@ -28,69 +28,42 @@ import RxSwift import RxCocoa import RxAlamofire -fileprivate let defaultTimeoutInterval = 20.0 +public let defaultTimeoutInterval = 20.0 open class DefaultNetworkService: NetworkService { - static let sharedInstance = DefaultNetworkService() - static let retryLimit = 3 open class func baseUrl() -> String { fatalError("base url should be overrided") } - private override init(sessionManager: Alamofire.SessionManager) { + public override init(sessionManager: SessionManager) { super.init(sessionManager: sessionManager) bindActivityIndicator() } - public convenience init() { + // MARK: - Default Values + + open class func serverTrustPolicies() -> [String: ServerTrustPolicy] { + return [ + DefaultNetworkService.baseUrl(): .disableEvaluation + ] + } + + open class func configuration() -> URLSessionConfiguration { let configuration = URLSessionConfiguration.default configuration.timeoutIntervalForRequest = defaultTimeoutInterval - let serverTrustPolicies: [String: ServerTrustPolicy] = [ - DefaultNetworkService.baseUrl(): .disableEvaluation - ] - - let sessionManager = SessionManager(configuration: configuration, - serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)) - - self.init(sessionManager: sessionManager) + return configuration } - // MARK: - Internal methods - -// func request(with parameters: ApiRequestParameters) -> Observable { -// let apiResponseRequest = rxRequest(with: parameters) as Observable<(response: HTTPURLResponse, model: ApiResponse)> -// -// return apiResponseRequest -// .handleConnectionErrors() -// .map { -// if $0.model.errorCode == 0 { -// return try T(JSON: try cast($0.model.result) as [String: Any]) -// } else { -// throw ApiError(apiResponse: $0.model) -// } -// } -// .handleGeneralApiErrors() -// } -// -// func requestForResult(with parameters: ApiRequestParameters) -> Observable { -// let apiResponseRequest = rxRequest(with: parameters) as Observable<(response: HTTPURLResponse, model: ApiResponse)> -// -// return apiResponseRequest -// .handleConnectionErrors() -// .map { -// if $0.model.errorCode == 0 { -// return true -// } else { -// throw ApiError(apiResponse: $0.model) -// } -// } -// .handleGeneralApiErrors() -// } + open class func sessionManager() -> SessionManager { + let sessionManager = SessionManager(configuration: configuration(), + serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies())) + return sessionManager + } }