diff --git a/modules/openapi-generator/src/main/resources/swift5/Models.mustache b/modules/openapi-generator/src/main/resources/swift5/Models.mustache index 74ce973b2872..e8ca64cdc524 100644 --- a/modules/openapi-generator/src/main/resources/swift5/Models.mustache +++ b/modules/openapi-generator/src/main/resources/swift5/Models.mustache @@ -33,15 +33,15 @@ protocol JSONEncodable { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}open{{/nonPublicApi}} class Response { {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let statusCode: Int {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let header: [String: String] - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let body: T? + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} let body: T - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(statusCode: Int, header: [String: String], body: T?) { + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} convenience init(response: HTTPURLResponse, body: T?) { + {{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/modules/openapi-generator/src/main/resources/swift5/api.mustache b/modules/openapi-generator/src/main/resources/swift5/api.mustache index d0b300c64c1c..6e95e653a32f 100644 --- a/modules/openapi-generator/src/main/resources/swift5/api.mustache +++ b/modules/openapi-generator/src/main/resources/swift5/api.mustache @@ -97,7 +97,7 @@ extension {{projectName}}API { switch result { {{#returnType}} case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) {{/returnType}} {{^returnType}} case .success: @@ -128,7 +128,7 @@ extension {{projectName}}API { switch result { {{#returnType}} case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) {{/returnType}} {{^returnType}} case .success: @@ -167,7 +167,7 @@ extension {{projectName}}API { switch result { {{#returnType}} case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) {{/returnType}} {{^returnType}} case .success: @@ -212,7 +212,7 @@ extension {{projectName}}API { switch result { {{#returnType}} case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) {{/returnType}} {{^returnType}} case .success: @@ -246,7 +246,7 @@ extension {{projectName}}API { switch result { {{#returnType}} case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) {{/returnType}} {{^returnType}} case .success: diff --git a/modules/openapi-generator/src/main/resources/swift5/libraries/alamofire/AlamofireImplementations.mustache b/modules/openapi-generator/src/main/resources/swift5/libraries/alamofire/AlamofireImplementations.mustache index 31446b095433..48105ef58d95 100644 --- a/modules/openapi-generator/src/main/resources/swift5/libraries/alamofire/AlamofireImplementations.mustache +++ b/modules/openapi-generator/src/main/resources/swift5/libraries/alamofire/AlamofireImplementations.mustache @@ -160,100 +160,20 @@ private var managerStore = SynchronizedDictionary() let validatedRequest = request.validate() switch T.self { - case is String.Type: - validatedRequest.responseString(queue: apiResponseQueue, completionHandler: { stringResponse in - cleanupRequest() - - switch stringResponse.result { - case let .success(value): - completion(.success(Response(response: stringResponse.response!, body: value as? T))) - case let .failure(error): - completion(.failure(ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.response, error))) - } - - }) - case is URL.Type: - validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { dataResponse in - cleanupRequest() - - do { - - guard case .success = dataResponse.result else { - throw DownloadException.responseFailed - } - - guard let data = dataResponse.data else { - throw DownloadException.responseDataMissing - } - - guard let request = request.request else { - throw DownloadException.requestMissing - } - - let fileManager = FileManager.default - let urlRequest = try request.asURLRequest() - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try self.getURL(from: urlRequest) - - var requestPath = try self.getPath(from: requestURL) - - if let headerFileName = self.getFileName(fromContentDisposition: dataResponse.response?.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.{{projectName}}.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: dataResponse.response!, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, dataResponse.data, dataResponse.response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, dataResponse.data, dataResponse.response, error))) - } - return - }) case is Void.Type: validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { voidResponse in cleanupRequest() switch voidResponse.result { case .success: - completion(.success(Response(response: voidResponse.response!, body: nil))) + completion(.success(Response(response: voidResponse.response!, body: () as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.response, error))) } - }) - case is Data.Type: - validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { dataResponse in - cleanupRequest() - - switch dataResponse.result { - case .success: - completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as? T))) - case let .failure(error): - completion(.failure(ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.response, error))) - } - }) default: - validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { dataResponse in - cleanupRequest() - - switch dataResponse.result { - case .success: - completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as? T))) - case let .failure(error): - completion(.failure(ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.response, error))) - } - - }) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -338,7 +258,7 @@ private var managerStore = SynchronizedDictionary() switch stringResponse.result { case let .success(value): - completion(.success(Response(response: stringResponse.response!, body: value as? T))) + completion(.success(Response(response: stringResponse.response!, body: value as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.response, error))) } @@ -381,7 +301,7 @@ private var managerStore = SynchronizedDictionary() try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: dataResponse.response!, body: filePath as? T))) + completion(.success(Response(response: dataResponse.response!, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, dataResponse.data, dataResponse.response, requestParserError))) @@ -396,7 +316,7 @@ private var managerStore = SynchronizedDictionary() switch voidResponse.result { case .success: - completion(.success(Response(response: voidResponse.response!, body: nil))) + completion(.success(Response(response: voidResponse.response!, body: () as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.response, error))) } @@ -408,7 +328,7 @@ private var managerStore = SynchronizedDictionary() switch dataResponse.result { case .success: - completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as? T))) + completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.response, error))) } diff --git a/modules/openapi-generator/src/main/resources/swift5/libraries/urlsession/URLSessionImplementations.mustache b/modules/openapi-generator/src/main/resources/swift5/libraries/urlsession/URLSessionImplementations.mustache index 648556996cac..707577e0da31 100644 --- a/modules/openapi-generator/src/main/resources/swift5/libraries/urlsession/URLSessionImplementations.mustache +++ b/modules/openapi-generator/src/main/resources/swift5/libraries/urlsession/URLSessionImplementations.mustache @@ -200,60 +200,12 @@ private var credentialStore = SynchronizedDictionary() } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.{{projectName}}.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ private var credentialStore = SynchronizedDictionary() let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ private var credentialStore = SynchronizedDictionary() try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ private var credentialStore = SynchronizedDictionary() case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift index 5fe5eaa7bec1..c8f1b663434c 100644 --- a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift +++ b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift @@ -160,100 +160,20 @@ open class AlamofireRequestBuilder: RequestBuilder { let validatedRequest = request.validate() switch T.self { - case is String.Type: - validatedRequest.responseString(queue: apiResponseQueue, completionHandler: { stringResponse in - cleanupRequest() - - switch stringResponse.result { - case let .success(value): - completion(.success(Response(response: stringResponse.response!, body: value as? T))) - case let .failure(error): - completion(.failure(ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.response, error))) - } - - }) - case is URL.Type: - validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { dataResponse in - cleanupRequest() - - do { - - guard case .success = dataResponse.result else { - throw DownloadException.responseFailed - } - - guard let data = dataResponse.data else { - throw DownloadException.responseDataMissing - } - - guard let request = request.request else { - throw DownloadException.requestMissing - } - - let fileManager = FileManager.default - let urlRequest = try request.asURLRequest() - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try self.getURL(from: urlRequest) - - var requestPath = try self.getPath(from: requestURL) - - if let headerFileName = self.getFileName(fromContentDisposition: dataResponse.response?.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: dataResponse.response!, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, dataResponse.data, dataResponse.response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, dataResponse.data, dataResponse.response, error))) - } - return - }) case is Void.Type: validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { voidResponse in cleanupRequest() switch voidResponse.result { case .success: - completion(.success(Response(response: voidResponse.response!, body: nil))) + completion(.success(Response(response: voidResponse.response!, body: () as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.response, error))) } - }) - case is Data.Type: - validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { dataResponse in - cleanupRequest() - - switch dataResponse.result { - case .success: - completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as? T))) - case let .failure(error): - completion(.failure(ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.response, error))) - } - }) default: - validatedRequest.responseData(queue: apiResponseQueue, completionHandler: { dataResponse in - cleanupRequest() - - switch dataResponse.result { - case .success: - completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as? T))) - case let .failure(error): - completion(.failure(ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.response, error))) - } - - }) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -338,7 +258,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild switch stringResponse.result { case let .success(value): - completion(.success(Response(response: stringResponse.response!, body: value as? T))) + completion(.success(Response(response: stringResponse.response!, body: value as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.response, error))) } @@ -381,7 +301,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: dataResponse.response!, body: filePath as? T))) + completion(.success(Response(response: dataResponse.response!, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, dataResponse.data, dataResponse.response, requestParserError))) @@ -396,7 +316,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild switch voidResponse.result { case .success: - completion(.success(Response(response: voidResponse.response!, body: nil))) + completion(.success(Response(response: voidResponse.response!, body: () as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.response, error))) } @@ -408,7 +328,7 @@ open class AlamofireDecodableRequestBuilder: AlamofireRequestBuild switch dataResponse.result { case .success: - completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as? T))) + completion(.success(Response(response: dataResponse.response!, body: dataResponse.data as! T))) case let .failure(error): completion(.failure(ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.response, error))) } diff --git a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/alamofireLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift index 45ca9d14c100..4877906db165 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift @@ -33,7 +33,7 @@ open class AnotherFakeAPI { task = call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 50aa3c4f2dda..e773584bb02b 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -32,7 +32,7 @@ open class FakeAPI { task = fakeOuterBooleanSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -87,7 +87,7 @@ open class FakeAPI { task = fakeOuterCompositeSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -142,7 +142,7 @@ open class FakeAPI { task = fakeOuterNumberSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -197,7 +197,7 @@ open class FakeAPI { task = fakeOuterStringSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -367,7 +367,7 @@ open class FakeAPI { task = testClientModelWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift index 5bb42aa34652..66d801132d26 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift @@ -33,7 +33,7 @@ open class FakeClassnameTags123API { task = testClassnameWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index 8bc53adc9c06..2f713417bfb0 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -165,7 +165,7 @@ open class PetAPI { task = findPetsByStatusWithRequestBuilder(status: status).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -229,7 +229,7 @@ open class PetAPI { task = findPetsByTagsWithRequestBuilder(tags: tags).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -293,7 +293,7 @@ open class PetAPI { task = getPetByIdWithRequestBuilder(petId: petId).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -489,7 +489,7 @@ open class PetAPI { task = uploadFileWithRequestBuilder(petId: petId, additionalMetadata: additionalMetadata, file: file).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -561,7 +561,7 @@ open class PetAPI { task = uploadFileWithRequiredFileWithRequestBuilder(petId: petId, requiredFile: requiredFile, additionalMetadata: additionalMetadata).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift index 6cfed59b37ac..41d3a6047dc2 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift @@ -92,7 +92,7 @@ open class StoreAPI { task = getInventoryWithRequestBuilder().execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -151,7 +151,7 @@ open class StoreAPI { task = getOrderByIdWithRequestBuilder(orderId: orderId).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -211,7 +211,7 @@ open class StoreAPI { task = placeOrderWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 48b052e3fcf9..f0e57f333cdf 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -262,7 +262,7 @@ open class UserAPI { task = getUserByNameWithRequestBuilder(username: username).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } @@ -322,7 +322,7 @@ open class UserAPI { task = loginUserWithRequestBuilder(username: username, password: password).execute(apiResponseQueue) { result in switch result { case let .success(response): - continuation.resume(returning: response.body!) + continuation.resume(returning: response.body) case let .failure(error): continuation.resume(throwing: error) } diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/asyncAwaitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift index 6b18892fd71a..724845424e6f 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift @@ -30,7 +30,7 @@ open class AnotherFakeAPI { task = call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 57e4aee7b36c..b64f5581ea63 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -29,7 +29,7 @@ open class FakeAPI { task = fakeOuterBooleanSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -80,7 +80,7 @@ open class FakeAPI { task = fakeOuterCompositeSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -131,7 +131,7 @@ open class FakeAPI { task = fakeOuterNumberSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -182,7 +182,7 @@ open class FakeAPI { task = fakeOuterStringSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -340,7 +340,7 @@ open class FakeAPI { task = testClientModelWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift index 963f5b9ff8d7..f95386104723 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift @@ -30,7 +30,7 @@ open class FakeClassnameTags123API { task = testClassnameWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index aea9263a7a50..1335065e0133 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -154,7 +154,7 @@ open class PetAPI { task = findPetsByStatusWithRequestBuilder(status: status).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -214,7 +214,7 @@ open class PetAPI { task = findPetsByTagsWithRequestBuilder(tags: tags).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -274,7 +274,7 @@ open class PetAPI { task = getPetByIdWithRequestBuilder(petId: petId).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -458,7 +458,7 @@ open class PetAPI { task = uploadFileWithRequestBuilder(petId: petId, additionalMetadata: additionalMetadata, file: file).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -526,7 +526,7 @@ open class PetAPI { task = uploadFileWithRequiredFileWithRequestBuilder(petId: petId, requiredFile: requiredFile, additionalMetadata: additionalMetadata).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift index e4a71a69dfd5..ec3368c105af 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift @@ -85,7 +85,7 @@ open class StoreAPI { task = getInventoryWithRequestBuilder().execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -140,7 +140,7 @@ open class StoreAPI { task = getOrderByIdWithRequestBuilder(orderId: orderId).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -196,7 +196,7 @@ open class StoreAPI { task = placeOrderWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 79cce70e949b..5ec63243c521 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -243,7 +243,7 @@ open class UserAPI { task = getUserByNameWithRequestBuilder(username: username).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } @@ -299,7 +299,7 @@ open class UserAPI { task = loginUserWithRequestBuilder(username: username, password: password).execute(apiResponseQueue) { result in switch result { case let .success(response): - promise(.success(response.body!)) + promise(.success(response.body)) case let .failure(error): promise(.failure(error)) } diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/combineLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/default/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/deprecated/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/Models.swift index f372f83aac84..5db24390bd78 100644 --- a/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ internal enum DecodableRequestBuilderError: Error { internal class Response { internal let statusCode: Int internal let header: [String: String] - internal let body: T? + internal let body: T - internal init(statusCode: Int, header: [String: String], body: T?) { + internal init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - internal convenience init(response: HTTPURLResponse, body: T?) { + internal convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 3046f05e3cdf..0d4c11bc1ac5 100644 --- a/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/nonPublicApi/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ internal class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ internal class URLSessionDecodableRequestBuilder: URLSessionReques let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ internal class URLSessionDecodableRequestBuilder: URLSessionReques try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ internal class URLSessionDecodableRequestBuilder: URLSessionReques case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/objcCompatible/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/oneOf/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift index 75fd284604e5..2e86e0cbaa43 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift @@ -25,7 +25,7 @@ open class AnotherFakeAPI { call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 3009dcc5901b..ef784bfffdcf 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -24,7 +24,7 @@ open class FakeAPI { fakeOuterBooleanSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -67,7 +67,7 @@ open class FakeAPI { fakeOuterCompositeSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -110,7 +110,7 @@ open class FakeAPI { fakeOuterNumberSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -153,7 +153,7 @@ open class FakeAPI { fakeOuterStringSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -287,7 +287,7 @@ open class FakeAPI { testClientModelWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift index 1a81a5cc681b..84cc164d5bfe 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift @@ -25,7 +25,7 @@ open class FakeClassnameTags123API { testClassnameWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index 5545eb0b7acd..a6de43f38702 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -133,7 +133,7 @@ open class PetAPI { findPetsByStatusWithRequestBuilder(status: status).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -185,7 +185,7 @@ open class PetAPI { findPetsByTagsWithRequestBuilder(tags: tags).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -237,7 +237,7 @@ open class PetAPI { getPetByIdWithRequestBuilder(petId: petId).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -397,7 +397,7 @@ open class PetAPI { uploadFileWithRequestBuilder(petId: petId, additionalMetadata: additionalMetadata, file: file).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -457,7 +457,7 @@ open class PetAPI { uploadFileWithRequiredFileWithRequestBuilder(petId: petId, requiredFile: requiredFile, additionalMetadata: additionalMetadata).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift index af27df36ea44..dba4582cb83f 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift @@ -72,7 +72,7 @@ open class StoreAPI { getInventoryWithRequestBuilder().execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -119,7 +119,7 @@ open class StoreAPI { getOrderByIdWithRequestBuilder(orderId: orderId).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -167,7 +167,7 @@ open class StoreAPI { placeOrderWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 76e6ed4d0b36..0053bffff2b6 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -206,7 +206,7 @@ open class UserAPI { getUserByNameWithRequestBuilder(username: username).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } @@ -254,7 +254,7 @@ open class UserAPI { loginUserWithRequestBuilder(username: username, password: password).execute(apiResponseQueue) { result in switch result { case let .success(response): - deferred.resolver.fulfill(response.body!) + deferred.resolver.fulfill(response.body) case let .failure(error): deferred.resolver.reject(error) } diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/promisekitLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/readonlyProperties/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift index 1277c034392c..03e84c9a2e39 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift @@ -24,7 +24,7 @@ open class AnotherFakeAPI { return call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 2b796b1fd2f9..1bb864f1684f 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -23,7 +23,7 @@ open class FakeAPI { return fakeOuterBooleanSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -65,7 +65,7 @@ open class FakeAPI { return fakeOuterCompositeSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -107,7 +107,7 @@ open class FakeAPI { return fakeOuterNumberSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -149,7 +149,7 @@ open class FakeAPI { return fakeOuterStringSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -280,7 +280,7 @@ open class FakeAPI { return testClientModelWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift index 30d24c9a9e35..0749c5c9dc71 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift @@ -24,7 +24,7 @@ open class FakeClassnameTags123API { return testClassnameWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index a381d52b651a..ff5d3c3db107 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -130,7 +130,7 @@ open class PetAPI { return findPetsByStatusWithRequestBuilder(status: status).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -181,7 +181,7 @@ open class PetAPI { return findPetsByTagsWithRequestBuilder(tags: tags).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -232,7 +232,7 @@ open class PetAPI { return getPetByIdWithRequestBuilder(petId: petId).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -389,7 +389,7 @@ open class PetAPI { return uploadFileWithRequestBuilder(petId: petId, additionalMetadata: additionalMetadata, file: file).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -448,7 +448,7 @@ open class PetAPI { return uploadFileWithRequiredFileWithRequestBuilder(petId: petId, requiredFile: requiredFile, additionalMetadata: additionalMetadata).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift index 66824247d0d4..6ce5440ab905 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift @@ -70,7 +70,7 @@ open class StoreAPI { return getInventoryWithRequestBuilder().execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -116,7 +116,7 @@ open class StoreAPI { return getOrderByIdWithRequestBuilder(orderId: orderId).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -163,7 +163,7 @@ open class StoreAPI { return placeOrderWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index 799e257924dc..bca3f08fe834 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -201,7 +201,7 @@ open class UserAPI { return getUserByNameWithRequestBuilder(username: username).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } @@ -248,7 +248,7 @@ open class UserAPI { return loginUserWithRequestBuilder(username: username, password: password).execute(apiResponseQueue) { result in switch result { case let .success(response): - completion(.success(response.body!)) + completion(.success(response.body)) case let .failure(error): completion(.failure(error)) } diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/resultLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift index bc8aa33bf499..34db22eeb118 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift @@ -25,7 +25,7 @@ open class AnotherFakeAPI { let task = call123testSpecialTagsWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift index 2873a26ba834..7836542dbe09 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift @@ -24,7 +24,7 @@ open class FakeAPI { let task = fakeOuterBooleanSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -72,7 +72,7 @@ open class FakeAPI { let task = fakeOuterCompositeSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -120,7 +120,7 @@ open class FakeAPI { let task = fakeOuterNumberSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -168,7 +168,7 @@ open class FakeAPI { let task = fakeOuterStringSerializeWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -317,7 +317,7 @@ open class FakeAPI { let task = testClientModelWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift index cffcafcba698..a19dd70dd44b 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift @@ -25,7 +25,7 @@ open class FakeClassnameTags123API { let task = testClassnameWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift index 95d0a84b169d..1f346ba10199 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift @@ -143,7 +143,7 @@ open class PetAPI { let task = findPetsByStatusWithRequestBuilder(status: status).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -200,7 +200,7 @@ open class PetAPI { let task = findPetsByTagsWithRequestBuilder(tags: tags).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -257,7 +257,7 @@ open class PetAPI { let task = getPetByIdWithRequestBuilder(petId: petId).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -432,7 +432,7 @@ open class PetAPI { let task = uploadFileWithRequestBuilder(petId: petId, additionalMetadata: additionalMetadata, file: file).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -497,7 +497,7 @@ open class PetAPI { let task = uploadFileWithRequiredFileWithRequestBuilder(petId: petId, requiredFile: requiredFile, additionalMetadata: additionalMetadata).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift index 829ebefaa984..09ef36156209 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift @@ -77,7 +77,7 @@ open class StoreAPI { let task = getInventoryWithRequestBuilder().execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -129,7 +129,7 @@ open class StoreAPI { let task = getOrderByIdWithRequestBuilder(orderId: orderId).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -182,7 +182,7 @@ open class StoreAPI { let task = placeOrderWithRequestBuilder(body: body).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift index f00d31a838bc..be932ce5e321 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift @@ -226,7 +226,7 @@ open class UserAPI { let task = getUserByNameWithRequestBuilder(username: username).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } @@ -279,7 +279,7 @@ open class UserAPI { let task = loginUserWithRequestBuilder(username: username, password: password).execute(apiResponseQueue) { result in switch result { case let .success(response): - observer.onNext(response.body!) + observer.onNext(response.body) case let .failure(error): observer.onError(error) } diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/rxswiftLibrary/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/Models.swift b/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/Models.swift +++ b/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/URLSessionImplementations.swift b/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/urlsessionLibrary/Sources/PetstoreClient/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: diff --git a/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/Models.swift b/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/Models.swift index 96e26a20f7d6..e58029901670 100644 --- a/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/Models.swift +++ b/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/Models.swift @@ -33,15 +33,15 @@ public enum DecodableRequestBuilderError: Error { open class Response { public let statusCode: Int public let header: [String: String] - public let body: T? + public let body: T - public init(statusCode: Int, header: [String: String], body: T?) { + public init(statusCode: Int, header: [String: String], body: T) { self.statusCode = statusCode self.header = header self.body = body } - public convenience init(response: HTTPURLResponse, body: T?) { + public convenience init(response: HTTPURLResponse, body: T) { let rawHeader = response.allHeaderFields var header = [String: String]() for (key, value) in rawHeader { diff --git a/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift b/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift index 24ab89eda79d..fe7fb6683bcf 100644 --- a/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift +++ b/samples/client/petstore/swift5/x-swift-hashable/PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift @@ -200,60 +200,12 @@ open class URLSessionRequestBuilder: RequestBuilder { } switch T.self { - case is String.Type: - - let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - - completion(.success(Response(response: httpResponse, body: body as? T))) - - case is URL.Type: - do { - - guard error == nil else { - throw DownloadException.responseFailed - } - - guard let data = data else { - throw DownloadException.responseDataMissing - } - - let fileManager = FileManager.default - let cachesDirectory = fileManager.urls(for: .cachesDirectory, in: .userDomainMask)[0] - let requestURL = try getURL(from: urlRequest) - - var requestPath = try getPath(from: requestURL) - - if let headerFileName = getFileName(fromContentDisposition: httpResponse.allHeaderFields["Content-Disposition"] as? String) { - requestPath = requestPath.appending("/\(headerFileName)") - } else { - requestPath = requestPath.appending("/tmp.PetstoreClient.\(UUID().uuidString)") - } - - let filePath = cachesDirectory.appendingPathComponent(requestPath) - let directoryPath = filePath.deletingLastPathComponent().path - - try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) - try data.write(to: filePath, options: .atomic) - - completion(.success(Response(response: httpResponse, body: filePath as? T))) - - } catch let requestParserError as DownloadException { - completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) - } catch { - completion(.failure(ErrorResponse.error(400, data, response, error))) - } - case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) - - case is Data.Type: - - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: () as! T))) default: - - completion(.success(Response(response: httpResponse, body: data as? T))) + fatalError("Unsupported Response Body Type - \(String(describing: T.self))") } } @@ -345,7 +297,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui let body = data.flatMap { String(data: $0, encoding: .utf8) } ?? "" - completion(.success(Response(response: httpResponse, body: body as? T))) + completion(.success(Response(response: httpResponse, body: body as! T))) case is URL.Type: do { @@ -376,7 +328,7 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil) try data.write(to: filePath, options: .atomic) - completion(.success(Response(response: httpResponse, body: filePath as? T))) + completion(.success(Response(response: httpResponse, body: filePath as! T))) } catch let requestParserError as DownloadException { completion(.failure(ErrorResponse.error(400, data, response, requestParserError))) @@ -386,11 +338,11 @@ open class URLSessionDecodableRequestBuilder: URLSessionRequestBui case is Void.Type: - completion(.success(Response(response: httpResponse, body: nil))) + completion(.success(Response(response: httpResponse, body: () as! T))) case is Data.Type: - completion(.success(Response(response: httpResponse, body: data as? T))) + completion(.success(Response(response: httpResponse, body: data as! T))) default: