Skip to content

Commit 5f0976f

Browse files
committed
fix: use FoundationNetworking, use rxswift weak self reference
1 parent 574acc9 commit 5f0976f

13 files changed

Lines changed: 309 additions & 108 deletions

File tree

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation{{#usePromiseKit}}
9+
#if canImport(FoundationNetworking)
10+
import FoundationNetworking
11+
#endif
912
import PromiseKit{{/usePromiseKit}}{{#useRxSwift}}
1013
import RxSwift{{/useRxSwift}}{{#useCombine}}
1114
#if canImport(Combine)
@@ -151,8 +154,10 @@ extension {{projectName}}API {
151154
@available(*, deprecated, message: "This operation is deprecated.")
152155
{{/isDeprecated}}
153156
{{#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}}apiResponseQueue: DispatchQueue = {{projectName}}API.apiResponseQueue) -> Observable<{{{returnType}}}{{#returnType}}{{#isResponseOptional}}?{{/isResponseOptional}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {
154-
return Observable.create { observer -> Disposable in
155-
let requestTask = {{operationId}}WithRequestBuilder({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}).execute(apiResponseQueue) { result in
157+
return Observable.create { [weak self] observer -> Disposable in
158+
let requestTask: RequestTask?
159+
if let self {
160+
requestTask = {{operationId}}WithRequestBuilder({{#allParams}}{{paramName}}: {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}).execute(apiResponseQueue) { result in
156161
switch result {
157162
{{#returnType}}
158163
case let .success(response):
@@ -166,10 +171,13 @@ extension {{projectName}}API {
166171
observer.onError(error)
167172
}
168173
observer.onCompleted()
174+
}
175+
} else {
176+
requestTask = nil
169177
}
170178

171179
return Disposables.create {
172-
requestTask.cancel()
180+
requestTask?.cancel()
173181
}
174182
}
175183
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationNetworking)
10+
import FoundationNetworking
11+
#endif
912
import PromiseKit
1013
#if canImport(AnyCodable)
1114
import AnyCodable

samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationNetworking)
10+
import FoundationNetworking
11+
#endif
912
import PromiseKit
1013
#if canImport(AnyCodable)
1114
import AnyCodable

samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationNetworking)
10+
import FoundationNetworking
11+
#endif
912
import PromiseKit
1013
#if canImport(AnyCodable)
1114
import AnyCodable

samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationNetworking)
10+
import FoundationNetworking
11+
#endif
912
import PromiseKit
1013
#if canImport(AnyCodable)
1114
import AnyCodable

samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationNetworking)
10+
import FoundationNetworking
11+
#endif
912
import PromiseKit
1013
#if canImport(AnyCodable)
1114
import AnyCodable

samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationNetworking)
10+
import FoundationNetworking
11+
#endif
912
import PromiseKit
1013
#if canImport(AnyCodable)
1114
import AnyCodable

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,24 @@ open class AnotherFakeAPI {
3737
- returns: Observable<Client>
3838
*/
3939
open func call123testSpecialTags(body: Client, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue) -> Observable<Client> {
40-
return Observable.create { observer -> Disposable in
41-
let requestTask = call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in
40+
return Observable.create { [weak self] observer -> Disposable in
41+
let requestTask: RequestTask?
42+
if let self {
43+
requestTask = call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in
4244
switch result {
4345
case let .success(response):
4446
observer.onNext(response.body)
4547
case let .failure(error):
4648
observer.onError(error)
4749
}
4850
observer.onCompleted()
51+
}
52+
} else {
53+
requestTask = nil
4954
}
5055

5156
return Disposables.create {
52-
requestTask.cancel()
57+
requestTask?.cancel()
5358
}
5459
}
5560
}

0 commit comments

Comments
 (0)