diff --git a/modules/openapi-generator/src/main/resources/swift6/APIs.mustache b/modules/openapi-generator/src/main/resources/swift6/APIs.mustache index eeb29257cc9d..be10c165c625 100644 --- a/modules/openapi-generator/src/main/resources/swift6/APIs.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/APIs.mustache @@ -31,6 +31,7 @@ import Alamofire{{/useAlamofire}} /// /// If a HTTP status code is outside of this range the response will be interpreted as failed. {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var successfulStatusCodeRange: Range{{#useAlamofire}} + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var interceptor: RequestInterceptor? /// ResponseSerializer that will be used by the generator for `Data` responses /// /// If unchanged, Alamofires default `DataResponseSerializer` will be used. @@ -52,6 +53,7 @@ import Alamofire{{/useAlamofire}} apiResponseQueue: DispatchQueue = .main, codableHelper: CodableHelper = CodableHelper(), successfulStatusCodeRange: Range = 200..<300{{#useAlamofire}}, + interceptor: RequestInterceptor? = nil, dataResponseSerializer: AnyResponseSerializer = AnyResponseSerializer(DataResponseSerializer()), stringResponseSerializer: AnyResponseSerializer = AnyResponseSerializer(StringResponseSerializer()){{/useAlamofire}}{{/useVapor}} ) { @@ -66,6 +68,7 @@ import Alamofire{{/useAlamofire}} self.apiResponseQueue = apiResponseQueue self.codableHelper = codableHelper self.successfulStatusCodeRange = successfulStatusCodeRange{{#useAlamofire}} + self.interceptor = interceptor self.dataResponseSerializer = dataResponseSerializer self.stringResponseSerializer = stringResponseSerializer{{/useAlamofire}}{{/useVapor}} } diff --git a/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache b/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache index 02cbd6f9a1ef..94714b31baea 100644 --- a/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache +++ b/modules/openapi-generator/src/main/resources/swift6/libraries/alamofire/AlamofireImplementations.mustache @@ -36,11 +36,11 @@ fileprivate class AlamofireRequestBuilderConfiguration: @unchecked Sendable { May be overridden by a subclass if you want to control the session configuration. */ - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func createAlamofireSession(interceptor: RequestInterceptor? = nil) -> Alamofire.Session { + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func createAlamofireSession() -> Alamofire.Session { let configuration = URLSessionConfiguration.default configuration.httpAdditionalHeaders = buildHeaders() return Alamofire.Session(configuration: configuration, - interceptor: interceptor) + interceptor: openAPIClient.interceptor) } /** diff --git a/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/APIs.swift b/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/APIs.swift index f91846b26eec..700fdd24d0fe 100644 --- a/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/APIs.swift +++ b/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/APIs.swift @@ -22,6 +22,7 @@ open class OpenAPIClient: @unchecked Sendable { /// /// If a HTTP status code is outside of this range the response will be interpreted as failed. public var successfulStatusCodeRange: Range + public var interceptor: RequestInterceptor? /// ResponseSerializer that will be used by the generator for `Data` responses /// /// If unchanged, Alamofires default `DataResponseSerializer` will be used. @@ -39,6 +40,7 @@ open class OpenAPIClient: @unchecked Sendable { apiResponseQueue: DispatchQueue = .main, codableHelper: CodableHelper = CodableHelper(), successfulStatusCodeRange: Range = 200..<300, + interceptor: RequestInterceptor? = nil, dataResponseSerializer: AnyResponseSerializer = AnyResponseSerializer(DataResponseSerializer()), stringResponseSerializer: AnyResponseSerializer = AnyResponseSerializer(StringResponseSerializer()) ) { @@ -49,6 +51,7 @@ open class OpenAPIClient: @unchecked Sendable { self.apiResponseQueue = apiResponseQueue self.codableHelper = codableHelper self.successfulStatusCodeRange = successfulStatusCodeRange + self.interceptor = interceptor self.dataResponseSerializer = dataResponseSerializer self.stringResponseSerializer = stringResponseSerializer } diff --git a/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift b/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift index 5d91754cf45a..62d14a759c0b 100644 --- a/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift +++ b/samples/client/petstore/swift6/alamofireLibrary/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift @@ -36,11 +36,11 @@ open class AlamofireRequestBuilder: RequestBuilder, @unchecked Sendable { May be overridden by a subclass if you want to control the session configuration. */ - open func createAlamofireSession(interceptor: RequestInterceptor? = nil) -> Alamofire.Session { + open func createAlamofireSession() -> Alamofire.Session { let configuration = URLSessionConfiguration.default configuration.httpAdditionalHeaders = buildHeaders() return Alamofire.Session(configuration: configuration, - interceptor: interceptor) + interceptor: openAPIClient.interceptor) } /** diff --git a/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj b/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj index 2d8016bde108..20b9f39957cb 100644 --- a/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj +++ b/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient.xcodeproj/project.pbxproj @@ -16,7 +16,7 @@ 6D4EFBB51C693BE200B96B06 /* PetAPITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D4EFBB41C693BE200B96B06 /* PetAPITests.swift */; }; 6D4EFBB71C693BED00B96B06 /* StoreAPITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D4EFBB61C693BED00B96B06 /* StoreAPITests.swift */; }; 6D4EFBB91C693BFC00B96B06 /* UserAPITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D4EFBB81C693BFC00B96B06 /* UserAPITests.swift */; }; - A5465873259E306E00C3929B /* BearerDecodableRequestBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5465872259E306E00C3929B /* BearerDecodableRequestBuilder.swift */; }; + A5465873259E306E00C3929B /* BearerTokenHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5465872259E306E00C3929B /* BearerTokenHandler.swift */; }; A5782C6D2664F91D00CAA106 /* PetstoreClient in Frameworks */ = {isa = PBXBuildFile; productRef = A5782C6C2664F91D00CAA106 /* PetstoreClient */; }; A5EA12542419387200E30FC3 /* FileUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5EA12522419387100E30FC3 /* FileUtils.swift */; }; A5EA12552419387200E30FC3 /* UIImage+Extras.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5EA12532419387100E30FC3 /* UIImage+Extras.swift */; }; @@ -46,7 +46,7 @@ 6D4EFBB41C693BE200B96B06 /* PetAPITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PetAPITests.swift; sourceTree = ""; }; 6D4EFBB61C693BED00B96B06 /* StoreAPITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoreAPITests.swift; sourceTree = ""; }; 6D4EFBB81C693BFC00B96B06 /* UserAPITests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserAPITests.swift; sourceTree = ""; }; - A5465872259E306E00C3929B /* BearerDecodableRequestBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BearerDecodableRequestBuilder.swift; sourceTree = ""; }; + A5465872259E306E00C3929B /* BearerTokenHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BearerTokenHandler.swift; sourceTree = ""; }; A5EA12522419387100E30FC3 /* FileUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileUtils.swift; sourceTree = ""; }; A5EA12532419387100E30FC3 /* UIImage+Extras.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Extras.swift"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -101,7 +101,7 @@ children = ( 6D4EFB941C692C6300B96B06 /* AppDelegate.swift */, 6D4EFB961C692C6300B96B06 /* ViewController.swift */, - A5465872259E306E00C3929B /* BearerDecodableRequestBuilder.swift */, + A5465872259E306E00C3929B /* BearerTokenHandler.swift */, 6D4EFB981C692C6300B96B06 /* Main.storyboard */, 6D4EFB9B1C692C6300B96B06 /* Assets.xcassets */, 6D4EFB9D1C692C6300B96B06 /* LaunchScreen.storyboard */, @@ -231,7 +231,7 @@ buildActionMask = 2147483647; files = ( 6D4EFB971C692C6300B96B06 /* ViewController.swift in Sources */, - A5465873259E306E00C3929B /* BearerDecodableRequestBuilder.swift in Sources */, + A5465873259E306E00C3929B /* BearerTokenHandler.swift in Sources */, 6D4EFB951C692C6300B96B06 /* AppDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/AppDelegate.swift b/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/AppDelegate.swift index 801cf3e84fc0..c7b6b52fd28e 100644 --- a/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/AppDelegate.swift +++ b/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/AppDelegate.swift @@ -16,9 +16,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. - - // Customize requestBuilderFactory - OpenAPIClient.shared.requestBuilderFactory = BearerRequestBuilderFactory() + + OpenAPIClient.shared.interceptor = BearerTokenHandler() return true } diff --git a/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/BearerDecodableRequestBuilder.swift b/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/BearerTokenHandler.swift similarity index 51% rename from samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/BearerDecodableRequestBuilder.swift rename to samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/BearerTokenHandler.swift index 911ef68ca855..15f374a715db 100644 --- a/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/BearerDecodableRequestBuilder.swift +++ b/samples/client/petstore/swift6/alamofireLibrary/SwaggerClientTests/SwaggerClient/BearerTokenHandler.swift @@ -1,5 +1,5 @@ // -// BearerDecodableRequestBuilder.swift +// BearerTokenHandler.swift // SwaggerClient // // Created by Bruno Coelho on 31/12/2020. @@ -10,44 +10,6 @@ import Foundation import Alamofire import PetstoreClient -class BearerRequestBuilderFactory: RequestBuilderFactory { - func getNonDecodableBuilder() -> RequestBuilder.Type { - BearerRequestBuilder.self - } - - func getBuilder() -> RequestBuilder.Type { - BearerDecodableRequestBuilder.self - } -} - -class BearerRequestBuilder: AlamofireRequestBuilder, @unchecked Sendable { - override func createAlamofireSession(interceptor: RequestInterceptor? = nil) -> Session { - if self.requiresAuthentication { - - let bearerTokenHandler = BearerTokenHandler() - let alamofireSession = super.createAlamofireSession(interceptor: bearerTokenHandler) - - return alamofireSession - } else { - return super.createAlamofireSession(interceptor: nil) - } - } -} - -class BearerDecodableRequestBuilder: AlamofireDecodableRequestBuilder, @unchecked Sendable { - override func createAlamofireSession(interceptor: RequestInterceptor? = nil) -> Session { - if self.requiresAuthentication { - - let bearerTokenHandler = BearerTokenHandler() - let alamofireSession = super.createAlamofireSession(interceptor: bearerTokenHandler) - - return alamofireSession - } else { - return super.createAlamofireSession(interceptor: nil) - } - } -} - class BearerTokenHandler: RequestInterceptor, @unchecked Sendable { private var bearerToken: String? = nil diff --git a/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/APIs.swift b/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/APIs.swift index d76cc433f00a..25078f500cef 100644 --- a/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/APIs.swift +++ b/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/APIs.swift @@ -22,6 +22,7 @@ open class OpenAPIClient: @unchecked Sendable { /// /// If a HTTP status code is outside of this range the response will be interpreted as failed. public var successfulStatusCodeRange: Range + public var interceptor: RequestInterceptor? /// ResponseSerializer that will be used by the generator for `Data` responses /// /// If unchanged, Alamofires default `DataResponseSerializer` will be used. @@ -39,6 +40,7 @@ open class OpenAPIClient: @unchecked Sendable { apiResponseQueue: DispatchQueue = .main, codableHelper: CodableHelper = CodableHelper(), successfulStatusCodeRange: Range = 200..<300, + interceptor: RequestInterceptor? = nil, dataResponseSerializer: AnyResponseSerializer = AnyResponseSerializer(DataResponseSerializer()), stringResponseSerializer: AnyResponseSerializer = AnyResponseSerializer(StringResponseSerializer()) ) { @@ -49,6 +51,7 @@ open class OpenAPIClient: @unchecked Sendable { self.apiResponseQueue = apiResponseQueue self.codableHelper = codableHelper self.successfulStatusCodeRange = successfulStatusCodeRange + self.interceptor = interceptor self.dataResponseSerializer = dataResponseSerializer self.stringResponseSerializer = stringResponseSerializer } diff --git a/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift b/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift index 5d91754cf45a..62d14a759c0b 100644 --- a/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift +++ b/samples/client/petstore/swift6/apiNonStaticMethod/Sources/PetstoreClient/Infrastructure/AlamofireImplementations.swift @@ -36,11 +36,11 @@ open class AlamofireRequestBuilder: RequestBuilder, @unchecked Sendable { May be overridden by a subclass if you want to control the session configuration. */ - open func createAlamofireSession(interceptor: RequestInterceptor? = nil) -> Alamofire.Session { + open func createAlamofireSession() -> Alamofire.Session { let configuration = URLSessionConfiguration.default configuration.httpAdditionalHeaders = buildHeaders() return Alamofire.Session(configuration: configuration, - interceptor: interceptor) + interceptor: openAPIClient.interceptor) } /**