From 0ad47b3f344492270f5861bf7506d73bf49c679d Mon Sep 17 00:00:00 2001 From: Ivan Smolin Date: Tue, 29 Mar 2022 20:43:07 +0300 Subject: [PATCH] fix: DefaultRecoverableNetworkService `request` parameter was renamed to prevent ambgious reference --- CHANGELOG.md | 3 +++ LeadKit.podspec | 2 +- TIFoundationUtils/TIFoundationUtils.podspec | 2 +- TIKeychainUtils/TIKeychainUtils.podspec | 2 +- ...e.swift => Cancellable+Conformances.swift} | 6 ++++- .../DefaultJsonNetworkService.swift | 25 ++++++------------- ...DefaultRecoverableJsonNetworkService.swift | 11 ++++---- TIMoyaNetworking/TIMoyaNetworking.podspec | 2 +- .../EndpointRequest+Serialization.swift | 6 +++-- TINetworking/TINetworking.podspec | 2 +- TISwiftUtils/TISwiftUtils.podspec | 2 +- TITableKitUtils/TITableKitUtils.podspec | 2 +- TITransitions/TITransitions.podspec | 2 +- TIUIElements/TIUIElements.podspec | 2 +- TIUIKitCore/TIUIKitCore.podspec | 2 +- 15 files changed, 35 insertions(+), 36 deletions(-) rename TIMoyaNetworking/Sources/NetworkService/Cancellables/{DispatchWorkItem+Cancellable.swift => Cancellable+Conformances.swift} (90%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d2cba80..e5f345dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +### 1.12.1 + +- **Update**: DefaultRecoverableNetworkService `request` parameter was renamed to prevent ambgious reference ### 1.12.0 diff --git a/LeadKit.podspec b/LeadKit.podspec index c533651d..758f59e8 100644 --- a/LeadKit.podspec +++ b/LeadKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "LeadKit" - s.version = "1.12.0" + s.version = "1.12.1" s.summary = "iOS framework with a bunch of tools for rapid development" s.homepage = "https://github.com/TouchInstinct/LeadKit" s.license = "Apache License, Version 2.0" diff --git a/TIFoundationUtils/TIFoundationUtils.podspec b/TIFoundationUtils/TIFoundationUtils.podspec index 0e30eabf..5d3cf615 100644 --- a/TIFoundationUtils/TIFoundationUtils.podspec +++ b/TIFoundationUtils/TIFoundationUtils.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TIFoundationUtils' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Set of helpers for Foundation framework classes.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TIKeychainUtils/TIKeychainUtils.podspec b/TIKeychainUtils/TIKeychainUtils.podspec index 91205d3e..a9d16e91 100644 --- a/TIKeychainUtils/TIKeychainUtils.podspec +++ b/TIKeychainUtils/TIKeychainUtils.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TIKeychainUtils' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Set of helpers for Keychain classes.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TIMoyaNetworking/Sources/NetworkService/Cancellables/DispatchWorkItem+Cancellable.swift b/TIMoyaNetworking/Sources/NetworkService/Cancellables/Cancellable+Conformances.swift similarity index 90% rename from TIMoyaNetworking/Sources/NetworkService/Cancellables/DispatchWorkItem+Cancellable.swift rename to TIMoyaNetworking/Sources/NetworkService/Cancellables/Cancellable+Conformances.swift index b1cce66b..82d1a13a 100644 --- a/TIMoyaNetworking/Sources/NetworkService/Cancellables/DispatchWorkItem+Cancellable.swift +++ b/TIMoyaNetworking/Sources/NetworkService/Cancellables/Cancellable+Conformances.swift @@ -20,7 +20,11 @@ // THE SOFTWARE. // -import Dispatch import Moya +import Foundation + +@available(iOS 13.0, *) +extension _Concurrency.Task: Cancellable {} extension DispatchWorkItem: Cancellable {} +extension Operation: Cancellable {} diff --git a/TIMoyaNetworking/Sources/NetworkService/DefaultJsonNetworkService.swift b/TIMoyaNetworking/Sources/NetworkService/DefaultJsonNetworkService.swift index 4fb5ad7c..7ff2a0ff 100644 --- a/TIMoyaNetworking/Sources/NetworkService/DefaultJsonNetworkService.swift +++ b/TIMoyaNetworking/Sources/NetworkService/DefaultJsonNetworkService.swift @@ -29,8 +29,11 @@ import Foundation open class DefaultJsonNetworkService { public var session: Session - public var serializationQueue: DispatchQueue - public var callbackQueue: DispatchQueue + public var serializationQueue: DispatchQueue = .global(qos: .default) + public var callbackQueue: DispatchQueue = .main + + public var decodableSuccessStatusCodes: Set? = nil + public var decodableFailureStatusCodes: Set? = nil public var jsonDecoder: JSONDecoder public var jsonEncoder: JSONEncoder @@ -42,13 +45,9 @@ open class DefaultJsonNetworkService { public init(session: Session, jsonDecoder: JSONDecoder, jsonEncoder: JSONEncoder, - defaultServer: Server, - serializationQueue: DispatchQueue = .global(qos: .default), - callbackQueue: DispatchQueue = .main) { + defaultServer: Server) { self.session = session - self.serializationQueue = serializationQueue - self.callbackQueue = callbackQueue self.jsonDecoder = jsonDecoder self.jsonEncoder = jsonEncoder self.defaultServer = defaultServer @@ -71,8 +70,6 @@ open class DefaultJsonNetworkService { @available(iOS 13.0.0, *) public func process(request: EndpointRequest, - decodableSuccessStatusCodes: Set? = nil, - decodableFailureStatusCodes: Set? = nil, mapSuccess: @escaping Closure, mapFailure: @escaping Closure, mapMoyaError: @escaping Closure) async -> R { @@ -84,8 +81,6 @@ open class DefaultJsonNetworkService { }, operation: { await withCheckedContinuation { continuation in process(request: request, - decodableSuccessStatusCodes: decodableSuccessStatusCodes, - decodableFailureStatusCodes: decodableFailureStatusCodes, mapSuccess: mapSuccess, mapFailure: mapFailure, mapMoyaError: mapMoyaError) { @@ -98,8 +93,6 @@ open class DefaultJsonNetworkService { } public func process(request: EndpointRequest, - decodableSuccessStatusCodes: Set? = nil, - decodableFailureStatusCodes: Set? = nil, mapSuccess: @escaping Closure, mapFailure: @escaping Closure, mapMoyaError: @escaping Closure, @@ -116,8 +109,6 @@ open class DefaultJsonNetworkService { defaultServer: defaultServer) scope.add(cancellable: self.process(request: serializedRequest, - decodableSuccessStatusCodes: decodableSuccessStatusCodes, - decodableFailureStatusCodes: decodableFailureStatusCodes, mapSuccess: mapSuccess, mapFailure: mapFailure, mapMoyaError: mapMoyaError, @@ -136,14 +127,12 @@ open class DefaultJsonNetworkService { } public func process(request: SerializedRequest, - decodableSuccessStatusCodes: Set? = nil, - decodableFailureStatusCodes: Set? = nil, mapSuccess: @escaping Closure, mapFailure: @escaping Closure, mapMoyaError: @escaping Closure, completion: @escaping ParameterClosure) -> Cancellable { - createProvider().request(request) { [jsonDecoder, callbackQueue] in + createProvider().request(request) { [jsonDecoder, callbackQueue, decodableSuccessStatusCodes, decodableFailureStatusCodes] in let result: R switch $0 { diff --git a/TIMoyaNetworking/Sources/RecoverableNetworkService/DefaultRecoverableJsonNetworkService.swift b/TIMoyaNetworking/Sources/RecoverableNetworkService/DefaultRecoverableJsonNetworkService.swift index 98cac35c..a89d13dd 100644 --- a/TIMoyaNetworking/Sources/RecoverableNetworkService/DefaultRecoverableJsonNetworkService.swift +++ b/TIMoyaNetworking/Sources/RecoverableNetworkService/DefaultRecoverableJsonNetworkService.swift @@ -30,27 +30,28 @@ open class DefaultRecoverableJsonNetworkService: De private(set) public var defaultErrorHandlers: [ErrorHandler] = [] - public func process(request: EndpointRequest, + public func process(recoverableRequest: EndpointRequest, prependErrorHandlers: [ErrorHandler], appendErrorHandlers: [ErrorHandler], mapMoyaError: @escaping Closure) async -> Result { - await process(request: request, + await process(recoverableRequest: recoverableRequest, errorHandlers: prependErrorHandlers + defaultErrorHandlers + appendErrorHandlers, mapMoyaError: mapMoyaError) } - public func process(request: EndpointRequest, + public func process(recoverableRequest: EndpointRequest, errorHandlers: [ErrorHandler], mapMoyaError: @escaping Closure) async -> Result { - let result = await process(request: request, mapMoyaError: mapMoyaError) + let result = await process(request: recoverableRequest, + mapMoyaError: mapMoyaError) if case let .failure(errorResponse) = result { let chain = AsyncEventHandlingChain(handlers: errorHandlers) if await chain.handle(errorResponse) { - return await process(request: request, + return await process(recoverableRequest: recoverableRequest, errorHandlers: errorHandlers, mapMoyaError: mapMoyaError) } diff --git a/TIMoyaNetworking/TIMoyaNetworking.podspec b/TIMoyaNetworking/TIMoyaNetworking.podspec index 0f22fa0c..6094f700 100644 --- a/TIMoyaNetworking/TIMoyaNetworking.podspec +++ b/TIMoyaNetworking/TIMoyaNetworking.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TIMoyaNetworking' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Moya + Swagger network service.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TINetworking/Sources/Request/EndpointRequest+Serialization.swift b/TINetworking/Sources/Request/EndpointRequest+Serialization.swift index 74a4283e..e7ab9d06 100644 --- a/TINetworking/Sources/Request/EndpointRequest+Serialization.swift +++ b/TINetworking/Sources/Request/EndpointRequest+Serialization.swift @@ -32,13 +32,15 @@ public extension EndpointRequest { let (contentType, bodyData) = try serializer.serialize(body: body) let serializedQueryParameters = QueryStringParameterEncoding().encode(parameters: queryParameters) - var serializedHeaderParameters: [String: String]? + var serializedHeaderParameters: [String: String] if let customHeaderParameters = headerParameters { serializedHeaderParameters = HeaderParameterEncoding().encode(parameters: customHeaderParameters) + } else { + serializedHeaderParameters = [:] } - serializedHeaderParameters?[HTTPHeader.contentType(contentType).name] = contentType + serializedHeaderParameters[HTTPHeader.contentType(contentType).name] = contentType let cookies: [HTTPCookie] diff --git a/TINetworking/TINetworking.podspec b/TINetworking/TINetworking.podspec index 3ced1dac..d39fc064 100644 --- a/TINetworking/TINetworking.podspec +++ b/TINetworking/TINetworking.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TINetworking' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Swagger-frendly networking layer helpers.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TISwiftUtils/TISwiftUtils.podspec b/TISwiftUtils/TISwiftUtils.podspec index a57e0a37..392aebd4 100644 --- a/TISwiftUtils/TISwiftUtils.podspec +++ b/TISwiftUtils/TISwiftUtils.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TISwiftUtils' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Bunch of useful helpers for Swift development.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TITableKitUtils/TITableKitUtils.podspec b/TITableKitUtils/TITableKitUtils.podspec index 65e11e79..eadf1e50 100644 --- a/TITableKitUtils/TITableKitUtils.podspec +++ b/TITableKitUtils/TITableKitUtils.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TITableKitUtils' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Set of helpers for TableKit classes.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TITransitions/TITransitions.podspec b/TITransitions/TITransitions.podspec index 8f50ef1c..ffb6456d 100644 --- a/TITransitions/TITransitions.podspec +++ b/TITransitions/TITransitions.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TITransitions' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Set of custom transitions to present controller. ' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TIUIElements/TIUIElements.podspec b/TIUIElements/TIUIElements.podspec index ccaca90f..9afa9008 100644 --- a/TIUIElements/TIUIElements.podspec +++ b/TIUIElements/TIUIElements.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TIUIElements' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Bunch of useful protocols and views.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' } diff --git a/TIUIKitCore/TIUIKitCore.podspec b/TIUIKitCore/TIUIKitCore.podspec index 38d6ce7e..d45f2d6a 100644 --- a/TIUIKitCore/TIUIKitCore.podspec +++ b/TIUIKitCore/TIUIKitCore.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TIUIKitCore' - s.version = '1.12.0' + s.version = '1.12.1' s.summary = 'Core UI elements: protocols, views and helpers.' s.homepage = 'https://github.com/TouchInstinct/LeadKit/tree/' + s.version.to_s + '/' + s.name s.license = { :type => 'MIT', :file => 'LICENSE' }