Merge remote-tracking branch 'origin/5.3.x' into 6.0.x

This commit is contained in:
William Cheng
2021-07-12 17:11:35 +08:00
3874 changed files with 120282 additions and 21640 deletions

View File

@@ -1,12 +1,22 @@
# Created by https://www.toptal.com/developers/gitignore/api/swift,xcode
# Edit at https://www.toptal.com/developers/gitignore?templates=swift,xcode
### Swift ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData
## User settings
xcuserdata/
## Various settings
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
@@ -15,49 +25,81 @@ DerivedData
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint
## Obj-C/Swift specific
*.hmap
## App packaging
*.ipa
*.dSYM.zip
*.dSYM
## Playgrounds
timeline.xctimeline
playground.xcworkspace
# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
# Package.resolved
# *.xcodeproj
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
# .swiftpm
.build/
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
Carthage/Build/
# Add this lines if you are using Accio dependency management (Deprecated since Xcode 12)
# Dependencies/
# .accio/
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/docs/Gitignore.md
# https://docs.fastlane.tools/best-practices/source-control/#source-control
fastlane/report.xml
fastlane/screenshots
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output
# Code Injection
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode
iOSInjectionProject/
### Xcode ###
# Xcode
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Gcc Patch
/*.gcno
### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata
**/xcshareddata/WorkspaceSettings.xcsettings
# End of https://www.toptal.com/developers/gitignore/api/swift,xcode

View File

@@ -1 +1,5 @@
6.0.0-SNAPSHOT
<<<<<<< HEAD
6.0.0-SNAPSHOT
=======
5.3.0-SNAPSHOT
>>>>>>> origin/5.3.x

View File

@@ -1,2 +1,2 @@
github "Flight-School/AnyCodable" ~> 0.4.0
github "Flight-School/AnyCodable" ~> 0.6.1

View File

@@ -0,0 +1,16 @@
{
"object": {
"pins": [
{
"package": "AnyCodable",
"repositoryURL": "https://github.com/Flight-School/AnyCodable",
"state": {
"branch": null,
"revision": "69261f239f0fffaf51495dadc4f8483fbfe97025",
"version": "0.6.1"
}
}
]
},
"version": 1
}

View File

@@ -19,7 +19,7 @@ let package = Package(
],
dependencies: [
// Dependencies declare other packages that this package depends on.
.package(url: "https://github.com/Flight-School/AnyCodable", .exact("0.4.0")),
.package(url: "https://github.com/Flight-School/AnyCodable", from: "0.6.1"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.

View File

@@ -11,5 +11,5 @@ Pod::Spec.new do |s|
s.homepage = 'https://github.com/openapitools/openapi-generator'
s.summary = 'PetstoreClient'
s.source_files = 'PetstoreClient/Classes/**/*.swift'
s.dependency 'AnyCodable-FlightSchool', '~> 0.4.0'
s.dependency 'AnyCodable-FlightSchool', '~> 0.6.1'
end

View File

@@ -6,10 +6,13 @@
import Foundation
open class PetstoreClientAPI {
@available(*, deprecated, renamed: "PetstoreClient")
public typealias PetstoreClientAPI = PetstoreClient
open class PetstoreClient {
public static var basePath = "http://petstore.swagger.io/v2"
public static var credential: URLCredential?
public static var customHeaders: [String: String] = [:]
public static var credential: URLCredential?
public static var requestBuilderFactory: RequestBuilderFactory = URLSessionRequestBuilderFactory()
public static var apiResponseQueue: DispatchQueue = .main
}
@@ -32,7 +35,7 @@ open class RequestBuilder<T> {
self.parameters = parameters
self.headers = headers
addHeaders(PetstoreClientAPI.customHeaders)
addHeaders(PetstoreClient.customHeaders)
}
open func addHeaders(_ aHeaders: [String: String]) {
@@ -41,7 +44,7 @@ open class RequestBuilder<T> {
}
}
open func execute(_ apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, _ completion: @escaping (_ result: Swift.Result<Response<T>, Error>) -> Void) { }
open func execute(_ apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, _ completion: @escaping (_ result: Swift.Result<Response<T>, Error>) -> Void) { }
public func addHeader(name: String, value: String) -> Self {
if !value.isEmpty {
@@ -51,7 +54,7 @@ open class RequestBuilder<T> {
}
open func addCredential() -> Self {
credential = PetstoreClientAPI.credential
credential = PetstoreClient.credential
return self
}
}

View File

@@ -6,8 +6,12 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
open class PetAPI {
/**
Add a new pet to the store
@@ -15,7 +19,7 @@ open class PetAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func addPet(pet: Pet, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func addPet(pet: Pet, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
addPetWithRequestBuilder(pet: pet).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -36,21 +40,21 @@ open class PetAPI {
- returns: RequestBuilder<Void>
*/
open class func addPetWithRequestBuilder(pet: Pet) -> RequestBuilder<Void> {
let path = "/pet"
let URLString = PetstoreClientAPI.basePath + path
let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: pet)
let localVariablePath = "/pet"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: pet)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "POST", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -61,7 +65,7 @@ open class PetAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func deletePet(petId: Int64, apiKey: String? = nil, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func deletePet(petId: Int64, apiKey: String? = nil, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
deletePetWithRequestBuilder(petId: petId, apiKey: apiKey).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -83,24 +87,24 @@ open class PetAPI {
- returns: RequestBuilder<Void>
*/
open class func deletePetWithRequestBuilder(petId: Int64, apiKey: String? = nil) -> RequestBuilder<Void> {
var path = "/pet/{petId}"
var localVariablePath = "/pet/{petId}"
let petIdPreEscape = "\(APIHelper.mapValueToPathItem(petId))"
let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
localVariablePath = localVariablePath.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
"api_key": apiKey?.encodeToJSON(),
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "DELETE", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "DELETE", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -119,7 +123,7 @@ open class PetAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func findPetsByStatus(status: [String], apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: [Pet]?, _ error: Error?) -> Void)) {
open class func findPetsByStatus(status: [String], apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: [Pet]?, _ error: Error?) -> Void)) {
findPetsByStatusWithRequestBuilder(status: status).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -141,24 +145,24 @@ open class PetAPI {
- returns: RequestBuilder<[Pet]>
*/
open class func findPetsByStatusWithRequestBuilder(status: [String]) -> RequestBuilder<[Pet]> {
let path = "/pet/findByStatus"
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
let localVariablePath = "/pet/findByStatus"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
var urlComponents = URLComponents(string: URLString)
urlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
var localVariableUrlComponents = URLComponents(string: localVariableURLString)
localVariableUrlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
"status": status.encodeToJSON(),
])
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -169,7 +173,7 @@ open class PetAPI {
- parameter completion: completion handler to receive the data and the error objects
*/
@available(*, deprecated, message: "This operation is deprecated.")
open class func findPetsByTags(tags: [String], apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: [Pet]?, _ error: Error?) -> Void)) {
open class func findPetsByTags(tags: [String], apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: [Pet]?, _ error: Error?) -> Void)) {
findPetsByTagsWithRequestBuilder(tags: tags).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -192,24 +196,24 @@ open class PetAPI {
*/
@available(*, deprecated, message: "This operation is deprecated.")
open class func findPetsByTagsWithRequestBuilder(tags: [String]) -> RequestBuilder<[Pet]> {
let path = "/pet/findByTags"
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
let localVariablePath = "/pet/findByTags"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
var urlComponents = URLComponents(string: URLString)
urlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
var localVariableUrlComponents = URLComponents(string: localVariableURLString)
localVariableUrlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
"tags": tags.encodeToJSON(),
])
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<[Pet]>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -219,7 +223,7 @@ open class PetAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func getPetById(petId: Int64, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Pet?, _ error: Error?) -> Void)) {
open class func getPetById(petId: Int64, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Pet?, _ error: Error?) -> Void)) {
getPetByIdWithRequestBuilder(petId: petId).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -241,24 +245,24 @@ open class PetAPI {
- returns: RequestBuilder<Pet>
*/
open class func getPetByIdWithRequestBuilder(petId: Int64) -> RequestBuilder<Pet> {
var path = "/pet/{petId}"
var localVariablePath = "/pet/{petId}"
let petIdPreEscape = "\(APIHelper.mapValueToPathItem(petId))"
let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
localVariablePath = localVariablePath.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Pet>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<Pet>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -268,7 +272,7 @@ open class PetAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func updatePet(pet: Pet, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func updatePet(pet: Pet, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
updatePetWithRequestBuilder(pet: pet).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -289,21 +293,21 @@ open class PetAPI {
- returns: RequestBuilder<Void>
*/
open class func updatePetWithRequestBuilder(pet: Pet) -> RequestBuilder<Void> {
let path = "/pet"
let URLString = PetstoreClientAPI.basePath + path
let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: pet)
let localVariablePath = "/pet"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: pet)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "PUT", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "PUT", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -315,7 +319,7 @@ open class PetAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func updatePetWithForm(petId: Int64, name: String? = nil, status: String? = nil, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func updatePetWithForm(petId: Int64, name: String? = nil, status: String? = nil, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
updatePetWithFormWithRequestBuilder(petId: petId, name: name, status: status).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -338,30 +342,30 @@ open class PetAPI {
- returns: RequestBuilder<Void>
*/
open class func updatePetWithFormWithRequestBuilder(petId: Int64, name: String? = nil, status: String? = nil) -> RequestBuilder<Void> {
var path = "/pet/{petId}"
var localVariablePath = "/pet/{petId}"
let petIdPreEscape = "\(APIHelper.mapValueToPathItem(petId))"
let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [
localVariablePath = localVariablePath.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableFormParams: [String: Any?] = [
"name": name?.encodeToJSON(),
"status": status?.encodeToJSON(),
]
let nonNullParameters = APIHelper.rejectNil(formParams)
let parameters = APIHelper.convertBoolToString(nonNullParameters)
let localVariableNonNullParameters = APIHelper.rejectNil(localVariableFormParams)
let localVariableParameters = APIHelper.convertBoolToString(localVariableNonNullParameters)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
"Content-Type": "application/x-www-form-urlencoded",
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "POST", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -373,7 +377,7 @@ open class PetAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func uploadFile(petId: Int64, additionalMetadata: String? = nil, file: URL? = nil, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: ApiResponse?, _ error: Error?) -> Void)) {
open class func uploadFile(petId: Int64, additionalMetadata: String? = nil, file: URL? = nil, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: ApiResponse?, _ error: Error?) -> Void)) {
uploadFileWithRequestBuilder(petId: petId, additionalMetadata: additionalMetadata, file: file).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -396,30 +400,29 @@ open class PetAPI {
- returns: RequestBuilder<ApiResponse>
*/
open class func uploadFileWithRequestBuilder(petId: Int64, additionalMetadata: String? = nil, file: URL? = nil) -> RequestBuilder<ApiResponse> {
var path = "/pet/{petId}/uploadImage"
var localVariablePath = "/pet/{petId}/uploadImage"
let petIdPreEscape = "\(APIHelper.mapValueToPathItem(petId))"
let petIdPostEscape = petIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let formParams: [String: Any?] = [
localVariablePath = localVariablePath.replacingOccurrences(of: "{petId}", with: petIdPostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableFormParams: [String: Any?] = [
"additionalMetadata": additionalMetadata?.encodeToJSON(),
"file": file?.encodeToJSON(),
]
let nonNullParameters = APIHelper.rejectNil(formParams)
let parameters = APIHelper.convertBoolToString(nonNullParameters)
let localVariableNonNullParameters = APIHelper.rejectNil(localVariableFormParams)
let localVariableParameters = APIHelper.convertBoolToString(localVariableNonNullParameters)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
"Content-Type": "multipart/form-data",
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<ApiResponse>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<ApiResponse>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
}

View File

@@ -6,8 +6,12 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
open class StoreAPI {
/**
Delete purchase order by ID
@@ -15,7 +19,7 @@ open class StoreAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func deleteOrder(orderId: String, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func deleteOrder(orderId: String, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
deleteOrderWithRequestBuilder(orderId: orderId).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -34,24 +38,24 @@ open class StoreAPI {
- returns: RequestBuilder<Void>
*/
open class func deleteOrderWithRequestBuilder(orderId: String) -> RequestBuilder<Void> {
var path = "/store/order/{orderId}"
var localVariablePath = "/store/order/{orderId}"
let orderIdPreEscape = "\(APIHelper.mapValueToPathItem(orderId))"
let orderIdPostEscape = orderIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{orderId}", with: orderIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
localVariablePath = localVariablePath.replacingOccurrences(of: "{orderId}", with: orderIdPostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "DELETE", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "DELETE", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -60,7 +64,7 @@ open class StoreAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func getInventory(apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: [String: Int]?, _ error: Error?) -> Void)) {
open class func getInventory(apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: [String: Int]?, _ error: Error?) -> Void)) {
getInventoryWithRequestBuilder().execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -81,21 +85,21 @@ open class StoreAPI {
- returns: RequestBuilder<[String: Int]>
*/
open class func getInventoryWithRequestBuilder() -> RequestBuilder<[String: Int]> {
let path = "/store/inventory"
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
let localVariablePath = "/store/inventory"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<[String: Int]>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<[String: Int]>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -105,7 +109,7 @@ open class StoreAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func getOrderById(orderId: Int64, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Order?, _ error: Error?) -> Void)) {
open class func getOrderById(orderId: Int64, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Order?, _ error: Error?) -> Void)) {
getOrderByIdWithRequestBuilder(orderId: orderId).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -124,24 +128,24 @@ open class StoreAPI {
- returns: RequestBuilder<Order>
*/
open class func getOrderByIdWithRequestBuilder(orderId: Int64) -> RequestBuilder<Order> {
var path = "/store/order/{orderId}"
var localVariablePath = "/store/order/{orderId}"
let orderIdPreEscape = "\(APIHelper.mapValueToPathItem(orderId))"
let orderIdPostEscape = orderIdPreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{orderId}", with: orderIdPostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
localVariablePath = localVariablePath.replacingOccurrences(of: "{orderId}", with: orderIdPostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<Order>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -151,7 +155,7 @@ open class StoreAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func placeOrder(order: Order, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Order?, _ error: Error?) -> Void)) {
open class func placeOrder(order: Order, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Order?, _ error: Error?) -> Void)) {
placeOrderWithRequestBuilder(order: order).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -169,21 +173,20 @@ open class StoreAPI {
- returns: RequestBuilder<Order>
*/
open class func placeOrderWithRequestBuilder(order: Order) -> RequestBuilder<Order> {
let path = "/store/order"
let URLString = PetstoreClientAPI.basePath + path
let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: order)
let localVariablePath = "/store/order"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: order)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Order>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<Order>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "POST", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
}

View File

@@ -6,8 +6,12 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
open class UserAPI {
/**
Create user
@@ -15,7 +19,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func createUser(user: User, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func createUser(user: User, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
createUserWithRequestBuilder(user: user).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -37,21 +41,21 @@ open class UserAPI {
- returns: RequestBuilder<Void>
*/
open class func createUserWithRequestBuilder(user: User) -> RequestBuilder<Void> {
let path = "/user"
let URLString = PetstoreClientAPI.basePath + path
let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
let localVariablePath = "/user"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "POST", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -61,7 +65,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func createUsersWithArrayInput(user: [User], apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func createUsersWithArrayInput(user: [User], apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
createUsersWithArrayInputWithRequestBuilder(user: user).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -82,21 +86,21 @@ open class UserAPI {
- returns: RequestBuilder<Void>
*/
open class func createUsersWithArrayInputWithRequestBuilder(user: [User]) -> RequestBuilder<Void> {
let path = "/user/createWithArray"
let URLString = PetstoreClientAPI.basePath + path
let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
let localVariablePath = "/user/createWithArray"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "POST", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -106,7 +110,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func createUsersWithListInput(user: [User], apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func createUsersWithListInput(user: [User], apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
createUsersWithListInputWithRequestBuilder(user: user).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -127,21 +131,21 @@ open class UserAPI {
- returns: RequestBuilder<Void>
*/
open class func createUsersWithListInputWithRequestBuilder(user: [User]) -> RequestBuilder<Void> {
let path = "/user/createWithList"
let URLString = PetstoreClientAPI.basePath + path
let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
let localVariablePath = "/user/createWithList"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "POST", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "POST", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -151,7 +155,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func deleteUser(username: String, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func deleteUser(username: String, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
deleteUserWithRequestBuilder(username: username).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -173,24 +177,24 @@ open class UserAPI {
- returns: RequestBuilder<Void>
*/
open class func deleteUserWithRequestBuilder(username: String) -> RequestBuilder<Void> {
var path = "/user/{username}"
var localVariablePath = "/user/{username}"
let usernamePreEscape = "\(APIHelper.mapValueToPathItem(username))"
let usernamePostEscape = usernamePreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
localVariablePath = localVariablePath.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "DELETE", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "DELETE", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -200,7 +204,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func getUserByName(username: String, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: User?, _ error: Error?) -> Void)) {
open class func getUserByName(username: String, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: User?, _ error: Error?) -> Void)) {
getUserByNameWithRequestBuilder(username: username).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -218,24 +222,24 @@ open class UserAPI {
- returns: RequestBuilder<User>
*/
open class func getUserByNameWithRequestBuilder(username: String) -> RequestBuilder<User> {
var path = "/user/{username}"
var localVariablePath = "/user/{username}"
let usernamePreEscape = "\(APIHelper.mapValueToPathItem(username))"
let usernamePostEscape = usernamePreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
localVariablePath = localVariablePath.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<User>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<User>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -246,7 +250,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func loginUser(username: String, password: String, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: String?, _ error: Error?) -> Void)) {
open class func loginUser(username: String, password: String, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: String?, _ error: Error?) -> Void)) {
loginUserWithRequestBuilder(username: username, password: password).execute(apiResponseQueue) { result -> Void in
switch result {
case let .success(response):
@@ -266,25 +270,25 @@ open class UserAPI {
- returns: RequestBuilder<String>
*/
open class func loginUserWithRequestBuilder(username: String, password: String) -> RequestBuilder<String> {
let path = "/user/login"
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
let localVariablePath = "/user/login"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
var urlComponents = URLComponents(string: URLString)
urlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
var localVariableUrlComponents = URLComponents(string: localVariableURLString)
localVariableUrlComponents?.queryItems = APIHelper.mapValuesToQueryItems([
"username": username.encodeToJSON(),
"password": password.encodeToJSON(),
])
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<String>.Type = PetstoreClientAPI.requestBuilderFactory.getBuilder()
let localVariableRequestBuilder: RequestBuilder<String>.Type = PetstoreClient.requestBuilderFactory.getBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -293,7 +297,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func logoutUser(apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func logoutUser(apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
logoutUserWithRequestBuilder().execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -313,21 +317,21 @@ open class UserAPI {
- returns: RequestBuilder<Void>
*/
open class func logoutUserWithRequestBuilder() -> RequestBuilder<Void> {
let path = "/user/logout"
let URLString = PetstoreClientAPI.basePath + path
let parameters: [String: Any]? = nil
let localVariablePath = "/user/logout"
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters: [String: Any]? = nil
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "GET", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "GET", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
/**
@@ -338,7 +342,7 @@ open class UserAPI {
- parameter apiResponseQueue: The queue on which api response is dispatched.
- parameter completion: completion handler to receive the data and the error objects
*/
open class func updateUser(username: String, user: User, apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
open class func updateUser(username: String, user: User, apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, completion: @escaping ((_ data: Void?, _ error: Error?) -> Void)) {
updateUserWithRequestBuilder(username: username, user: user).execute(apiResponseQueue) { result -> Void in
switch result {
case .success:
@@ -361,24 +365,23 @@ open class UserAPI {
- returns: RequestBuilder<Void>
*/
open class func updateUserWithRequestBuilder(username: String, user: User) -> RequestBuilder<Void> {
var path = "/user/{username}"
var localVariablePath = "/user/{username}"
let usernamePreEscape = "\(APIHelper.mapValueToPathItem(username))"
let usernamePostEscape = usernamePreEscape.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) ?? ""
path = path.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil)
let URLString = PetstoreClientAPI.basePath + path
let parameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
localVariablePath = localVariablePath.replacingOccurrences(of: "{username}", with: usernamePostEscape, options: .literal, range: nil)
let localVariableURLString = PetstoreClient.basePath + localVariablePath
let localVariableParameters = JSONEncodingHelper.encodingParameters(forEncodableObject: user)
let urlComponents = URLComponents(string: URLString)
let localVariableUrlComponents = URLComponents(string: localVariableURLString)
let nillableHeaders: [String: Any?] = [
let localVariableNillableHeaders: [String: Any?] = [
:
]
let headerParameters = APIHelper.rejectNilHeaders(nillableHeaders)
let localVariableHeaderParameters = APIHelper.rejectNilHeaders(localVariableNillableHeaders)
let requestBuilder: RequestBuilder<Void>.Type = PetstoreClientAPI.requestBuilderFactory.getNonDecodableBuilder()
let localVariableRequestBuilder: RequestBuilder<Void>.Type = PetstoreClient.requestBuilderFactory.getNonDecodableBuilder()
return requestBuilder.init(method: "PUT", URLString: (urlComponents?.string ?? URLString), parameters: parameters, headers: headerParameters)
return localVariableRequestBuilder.init(method: "PUT", URLString: (localVariableUrlComponents?.string ?? localVariableURLString), parameters: localVariableParameters, headers: localVariableHeaderParameters)
}
}

View File

@@ -7,6 +7,7 @@
import Foundation
open class Configuration {
// This value is used to configure the date formatter that is used to serialize dates into JSON format.
// You must set it prior to encoding any dates, and it will only be read once.
@available(*, unavailable, message: "To set a different date format, use CodableHelper.dateFormatter instead.")

View File

@@ -5,7 +5,9 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
extension Bool: JSONEncodable {
func encodeToJSON() -> Any { return self as Any }
@@ -184,44 +186,3 @@ extension HTTPURLResponse {
return Array(200 ..< 300).contains(statusCode)
}
}
extension AnyCodable: Hashable {
public func hash(into hasher: inout Hasher) {
switch value {
case let value as Bool:
hasher.combine(value)
case let value as Int:
hasher.combine(value)
case let value as Int8:
hasher.combine(value)
case let value as Int16:
hasher.combine(value)
case let value as Int32:
hasher.combine(value)
case let value as Int64:
hasher.combine(value)
case let value as UInt:
hasher.combine(value)
case let value as UInt8:
hasher.combine(value)
case let value as UInt16:
hasher.combine(value)
case let value as UInt32:
hasher.combine(value)
case let value as UInt64:
hasher.combine(value)
case let value as Float:
hasher.combine(value)
case let value as Double:
hasher.combine(value)
case let value as String:
hasher.combine(value)
case let value as [String: AnyCodable]:
hasher.combine(value)
case let value as [AnyCodable]:
hasher.combine(value)
default:
hasher.combine(0)
}
}
}

View File

@@ -6,7 +6,9 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
/** Describes the result of uploading an image resource */
public struct ApiResponse: Codable, Hashable {
@@ -20,6 +22,7 @@ public struct ApiResponse: Codable, Hashable {
self.type = type
self.message = message
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case code
case type
@@ -34,7 +37,5 @@ public struct ApiResponse: Codable, Hashable {
try container.encodeIfPresent(type, forKey: .type)
try container.encodeIfPresent(message, forKey: .message)
}
}

View File

@@ -6,7 +6,9 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
/** A category for a pet */
public struct Category: Codable, Hashable {
@@ -18,6 +20,7 @@ public struct Category: Codable, Hashable {
self.id = id
self.name = name
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case id
case name
@@ -30,7 +33,5 @@ public struct Category: Codable, Hashable {
try container.encodeIfPresent(id, forKey: .id)
try container.encodeIfPresent(name, forKey: .name)
}
}

View File

@@ -6,7 +6,9 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
/** An order for a pets from the pet store */
@available(*, deprecated, message: "This schema is deprecated.")
@@ -33,6 +35,7 @@ public struct Order: Codable, Hashable {
self.status = status
self.complete = complete
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case id
case petId
@@ -53,7 +56,5 @@ public struct Order: Codable, Hashable {
try container.encodeIfPresent(status, forKey: .status)
try container.encodeIfPresent(complete, forKey: .complete)
}
}

View File

@@ -6,7 +6,9 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
/** A pet for sale in the pet store */
public struct Pet: Codable, Hashable {
@@ -33,6 +35,7 @@ public struct Pet: Codable, Hashable {
self.tags = tags
self.status = status
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case id
case category
@@ -53,7 +56,5 @@ public struct Pet: Codable, Hashable {
try container.encodeIfPresent(tags, forKey: .tags)
try container.encodeIfPresent(status, forKey: .status)
}
}

View File

@@ -6,7 +6,9 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
/** A tag for a pet */
public struct Tag: Codable, Hashable {
@@ -18,6 +20,7 @@ public struct Tag: Codable, Hashable {
self.id = id
self.name = name
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case id
case name
@@ -30,7 +33,5 @@ public struct Tag: Codable, Hashable {
try container.encodeIfPresent(id, forKey: .id)
try container.encodeIfPresent(name, forKey: .name)
}
}

View File

@@ -6,7 +6,9 @@
//
import Foundation
#if canImport(AnyCodable)
import AnyCodable
#endif
/** A User who is purchasing from the pet store */
public struct User: Codable, Hashable {
@@ -31,6 +33,7 @@ public struct User: Codable, Hashable {
self.phone = phone
self.userStatus = userStatus
}
public enum CodingKeys: String, CodingKey, CaseIterable {
case id
case username
@@ -55,7 +58,5 @@ public struct User: Codable, Hashable {
try container.encodeIfPresent(phone, forKey: .phone)
try container.encodeIfPresent(userStatus, forKey: .userStatus)
}
}

View File

@@ -93,14 +93,14 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
return modifiedRequest
}
override open func execute(_ apiResponseQueue: DispatchQueue = PetstoreClientAPI.apiResponseQueue, _ completion: @escaping (_ result: Swift.Result<Response<T>, Error>) -> Void) {
override open func execute(_ apiResponseQueue: DispatchQueue = PetstoreClient.apiResponseQueue, _ completion: @escaping (_ result: Swift.Result<Response<T>, Error>) -> Void) {
let urlSessionId = UUID().uuidString
// Create a new manager for each request to customize its request header
let urlSession = createURLSession()
urlSessionStore[urlSessionId] = urlSession
guard let xMethod = HTTPMethod(rawValue: method) else {
fatalError("Unsuported Http method - \(method)")
fatalError("Unsupported Http method - \(method)")
}
let encoding: ParameterEncoding
@@ -119,7 +119,7 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
} else if contentType == "application/x-www-form-urlencoded" {
encoding = FormURLEncoding()
} else {
fatalError("Unsuported Media Type - \(contentType)")
fatalError("Unsupported Media Type - \(contentType)")
}
}
@@ -205,16 +205,18 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
}
let fileManager = FileManager.default
let documentsDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
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 = documentsDirectory.appendingPathComponent(requestPath)
let filePath = cachesDirectory.appendingPathComponent(requestPath)
let directoryPath = filePath.deletingLastPathComponent().path
try fileManager.createDirectory(atPath: directoryPath, withIntermediateDirectories: true, attributes: nil)
@@ -232,6 +234,10 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
completion(.success(Response(response: httpResponse, body: nil)))
case is Data.Type:
completion(.success(Response(response: httpResponse, body: data as? T)))
default:
completion(.success(Response(response: httpResponse, body: data as? T)))
@@ -244,7 +250,7 @@ open class URLSessionRequestBuilder<T>: RequestBuilder<T> {
for (key, value) in headers {
httpHeaders[key] = value
}
for (key, value) in PetstoreClientAPI.customHeaders {
for (key, value) in PetstoreClient.customHeaders {
httpHeaders[key] = value
}
return httpHeaders
@@ -328,6 +334,43 @@ open class URLSessionDecodableRequestBuilder<T: Decodable>: URLSessionRequestBui
completion(.success(Response<T>(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)))

View File

@@ -11,5 +11,5 @@ targets:
settings:
APPLICATION_EXTENSION_API_ONLY: true
scheme: {}
dependencies:
- carthage: AnyCodable