Skip to content

Commit 5c15fd8

Browse files
committed
[swift5] refactor global fields to local fields in API classes
1 parent 85f7112 commit 5c15fd8

149 files changed

Lines changed: 4950 additions & 2817 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/openapi-generator/src/main/resources/swift5/APIs.mustache

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,13 @@ import Vapor
3737
/// Optional block to obtain a reference to the request's progress instance when available.
3838
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var onProgressReady: ((Progress) -> Void)?
3939

40-
required {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(method: String, URLString: String, parameters: [String: Any]?, headers: [String: String] = [:], requiresAuthentication: Bool) {
40+
required {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(method: String, URLString: String, parameters: [String: Any]?, headers: [String: String] = [:], requiresAuthentication: Bool, credential: URLCredential?) {
4141
self.method = method
4242
self.URLString = URLString
4343
self.parameters = parameters
4444
self.headers = headers
4545
self.requiresAuthentication = requiresAuthentication
46-
47-
addHeaders({{projectName}}API.customHeaders)
48-
addCredential()
46+
self.credential = credential
4947
}
5048

5149
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func addHeaders(_ aHeaders: [String: String]) {
@@ -93,8 +91,8 @@ import Vapor
9391
return self
9492
}
9593

96-
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func addCredential() {
97-
credential = {{projectName}}API.credential
94+
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func addCredential(credential: URLCredential) {
95+
self.credential = credential
9896
}
9997
}
10098

modules/openapi-generator/src/main/resources/swift5/api.mustache

Lines changed: 36 additions & 14 deletions
Large diffs are not rendered by default.

modules/openapi-generator/src/main/resources/swift5/api_doc.mustache

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ Method | HTTP request | Description
1515
{{^usePromiseKit}}
1616
{{^useRxSwift}}
1717
{{^useVapor}}
18-
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}completion: @escaping (_ data: {{{returnType}}}{{^returnType}}Void{{/returnType}}?, _ error: Error?) -> Void)
18+
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}completion: @escaping (_ data: {{{returnType}}}{{^returnType}}Void{{/returnType}}?, _ error: Error?) -> Void)
1919
{{/useVapor}}
2020
{{/useRxSwift}}
2121
{{/usePromiseKit}}
2222
{{#usePromiseKit}}
23-
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class func {{operationId}}({{#allParams}} {{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) -> Promise<{{{returnType}}}{{^returnType}}Void{{/returnType}}>
23+
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func {{operationId}}({{#allParams}} {{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) -> Promise<{{{returnType}}}{{^returnType}}Void{{/returnType}}>
2424
{{/usePromiseKit}}
2525
{{#useRxSwift}}
26-
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) -> Observable<{{{returnType}}}{{^returnType}}Void{{/returnType}}>
26+
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}) -> Observable<{{{returnType}}}{{^returnType}}Void{{/returnType}}>
2727
{{/useRxSwift}}
2828
{{#useVapor}}
29-
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: HTTPHeaders = {{projectName}}API.customHeaders, beforeSend: (inout ClientRequest) throws -> () = { _ in }) -> EventLoopFuture<{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}>
29+
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} func {{operationId}}({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}[{{enumName}}_{{operationId}}]{{/isContainer}}{{^isContainer}}{{enumName}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers: HTTPHeaders = {{projectName}}API.customHeaders, beforeSend: (inout ClientRequest) throws -> () = { _ in }) -> EventLoopFuture<{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}>
3030
{{/useVapor}}
3131
```
3232

@@ -48,7 +48,7 @@ import {{{projectName}}}
4848
{{#summary}}
4949
// {{{.}}}
5050
{{/summary}}
51-
{{classname}}.{{{operationId}}}({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) { (response, error) in
51+
{{classname}}().{{{operationId}}}({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) { (response, error) in
5252
guard error == nil else {
5353
print(error)
5454
return
@@ -65,7 +65,7 @@ import {{{projectName}}}
6565
{{#summary}}
6666
// {{{.}}}
6767
{{/summary}}
68-
{{classname}}.{{{operationId}}}({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}).then {
68+
{{classname}}().{{{operationId}}}({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}).then {
6969
// when the promise is fulfilled
7070
}.always {
7171
// regardless of whether the promise is fulfilled, or rejected
@@ -80,7 +80,7 @@ import {{{projectName}}}
8080
{{#summary}}
8181
// {{{.}}}
8282
{{/summary}}
83-
{{classname}}.{{{operationId}}}({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}).whenComplete { result in
83+
{{classname}}().{{{operationId}}}({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}).whenComplete { result in
8484
switch result {
8585
case .failure(let error):
8686
// process error

modules/openapi-generator/src/main/resources/swift5/libraries/urlsession/URLSessionImplementations.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ private var credentialStore = SynchronizedDictionary<Int, URLCredential>()
7171
*/
7272
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} var taskDidReceiveChallenge: {{projectName}}APIChallengeHandler?
7373

74-
required {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(method: String, URLString: String, parameters: [String: Any]?, headers: [String: String] = [:], requiresAuthentication: Bool) {
75-
super.init(method: method, URLString: URLString, parameters: parameters, headers: headers, requiresAuthentication: requiresAuthentication)
74+
required {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(method: String, URLString: String, parameters: [String: Any]?, headers: [String: String] = [:], requiresAuthentication: Bool, credential: URLCredential?) {
75+
super.init(method: method, URLString: URLString, parameters: parameters, headers: headers, requiresAuthentication: requiresAuthentication, credential: credential)
7676
}
7777

7878
/**

samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/APIs.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,13 @@ open class RequestBuilder<T> {
2828
/// Optional block to obtain a reference to the request's progress instance when available.
2929
public var onProgressReady: ((Progress) -> Void)?
3030

31-
required public init(method: String, URLString: String, parameters: [String: Any]?, headers: [String: String] = [:], requiresAuthentication: Bool) {
31+
required public init(method: String, URLString: String, parameters: [String: Any]?, headers: [String: String] = [:], requiresAuthentication: Bool, credential: URLCredential?) {
3232
self.method = method
3333
self.URLString = URLString
3434
self.parameters = parameters
3535
self.headers = headers
3636
self.requiresAuthentication = requiresAuthentication
37-
38-
addHeaders(PetstoreClientAPI.customHeaders)
39-
addCredential()
37+
self.credential = credential
4038
}
4139

4240
open func addHeaders(_ aHeaders: [String: String]) {
@@ -57,8 +55,8 @@ open class RequestBuilder<T> {
5755
return self
5856
}
5957

60-
open func addCredential() {
61-
credential = PetstoreClientAPI.credential
58+
open func addCredential(credential: URLCredential) {
59+
self.credential = credential
6260
}
6361
}
6462

samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,25 @@ import AnyCodable
1111
#endif
1212

1313
open class AnotherFakeAPI {
14+
private let basePath: String
15+
private let customHeaders: [String: String]
16+
private let credential: URLCredential?
17+
private let requestBuilderFactory: RequestBuilderFactory
18+
private let apiResponseQueue: DispatchQueue
19+
20+
public init(
21+
basePath: String = PetstoreClientAPI.basePath,
22+
customHeaders: [String: String] = PetstoreClientAPI.customHeaders,
23+
credential: URLCredential? = PetstoreClientAPI.credential,
24+
requestBuilderFactory: RequestBuilderFactory = PetstoreClientAPI.requestBuilderFactory,
25+
apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue
26+
) {
27+
self.basePath = basePath
28+
self.customHeaders = customHeaders
29+
self.credential = credential
30+
self.requestBuilderFactory = requestBuilderFactory
31+
self.apiResponseQueue = apiResponseQueue
32+
}
1433

1534
/**
1635
To test special tags
@@ -20,7 +39,7 @@ open class AnotherFakeAPI {
2039
- parameter completion: completion handler to receive the data and the error objects
2140
*/
2241
@discardableResult
23-
open class func call123testSpecialTags(body: Client, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Client?, _ error: Error?) -> Void)) -> RequestTask {
42+
open func call123testSpecialTags(body: Client, apiResponseQueue: DispatchQueue = apiResponseQueue, completion: @escaping ((_ data: Client?, _ error: Error?) -> Void)) -> RequestTask {
2443
return call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in
2544
switch result {
2645
case let .success(response):
@@ -38,9 +57,9 @@ open class AnotherFakeAPI {
3857
- parameter body: (body) client model
3958
- returns: RequestBuilder<Client>
4059
*/
41-
open class func call123testSpecialTagsWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
60+
open func call123testSpecialTagsWithRequestBuilder(body: Client) -> RequestBuilder<Client> {
4261
let localVariablePath = "/another-fake/dummy"
43-
let localVariableURLString = PetstoreClientAPI.basePath + localVariablePath
62+
let localVariableURLString = basePath + localVariablePath
4463
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: body)
4564

4665
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
@@ -49,10 +68,13 @@ open class AnotherFakeAPI {
4968
"Content-Type": "application/json",
5069
]
5170

52-
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
71+
var localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
72+
for (header, value) in customHeaders {
73+
localVariableHeaderParameters[header] = value
74+
}
5375

54-
let localVariableRequestBuilder: RequestBuilder<Client>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
76+
let localVariableRequestBuilder: RequestBuilder<Client>.Type = requestBuilderFactory.getBuilder()
5577

56-
return localVariableRequestBuilder.init(method: "PATCH", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: false)
78+
return localVariableRequestBuilder.init(method: "PATCH", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters, requiresAuthentication: false, credential: credential)
5779
}
5880
}

0 commit comments

Comments
 (0)