Skip to content

Commit

Permalink
[Swift] fix GET request with array parameter (#6549)
Browse files Browse the repository at this point in the history
* [Swift] fix get request with array paramters

* iOS - update pet projects
  • Loading branch information
4brunu authored Jun 5, 2020
1 parent 388218b commit 8da06b0
Show file tree
Hide file tree
Showing 24 changed files with 1,127 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ import Foundation
{{#nonPublicApi}}internal{{/nonPublicApi}}{{^nonPublicApi}}public{{/nonPublicApi}} static func mapValuesToQueryItems(_ source: [String:Any?]) -> [URLQueryItem]? {
let destination = source.filter({ $0.value != nil}).reduce(into: [URLQueryItem]()) { (result, item) in
if let collection = item.value as? Array<Any?> {
let value = collection.filter({ $0 != nil }).map({"\($0!)"}).joined(separator: ",")
result.append(URLQueryItem(name: item.key, value: value))
collection.filter({ $0 != nil }).map({"\($0!)"}).forEach { value in
result.append(URLQueryItem(name: item.key, value: value))
}
} else if let value = item.value {
result.append(URLQueryItem(name: item.key, value: "\(value)"))
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
.gitignore
Cartfile
Package.swift
PetstoreClient.podspec
PetstoreClient/Classes/OpenAPIs/APIHelper.swift
PetstoreClient/Classes/OpenAPIs/APIs.swift
PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift
PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift
PetstoreClient/Classes/OpenAPIs/AlamofireImplementations.swift
PetstoreClient/Classes/OpenAPIs/CodableHelper.swift
PetstoreClient/Classes/OpenAPIs/Configuration.swift
PetstoreClient/Classes/OpenAPIs/Extensions.swift
PetstoreClient/Classes/OpenAPIs/JSONDataEncoding.swift
PetstoreClient/Classes/OpenAPIs/JSONEncodingHelper.swift
PetstoreClient/Classes/OpenAPIs/Models.swift
PetstoreClient/Classes/OpenAPIs/Models/AdditionalPropertiesClass.swift
PetstoreClient/Classes/OpenAPIs/Models/Animal.swift
PetstoreClient/Classes/OpenAPIs/Models/AnimalFarm.swift
PetstoreClient/Classes/OpenAPIs/Models/ApiResponse.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayOfArrayOfNumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayOfNumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayTest.swift
PetstoreClient/Classes/OpenAPIs/Models/Capitalization.swift
PetstoreClient/Classes/OpenAPIs/Models/Cat.swift
PetstoreClient/Classes/OpenAPIs/Models/CatAllOf.swift
PetstoreClient/Classes/OpenAPIs/Models/Category.swift
PetstoreClient/Classes/OpenAPIs/Models/ClassModel.swift
PetstoreClient/Classes/OpenAPIs/Models/Client.swift
PetstoreClient/Classes/OpenAPIs/Models/Dog.swift
PetstoreClient/Classes/OpenAPIs/Models/DogAllOf.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumArrays.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumClass.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift
PetstoreClient/Classes/OpenAPIs/Models/File.swift
PetstoreClient/Classes/OpenAPIs/Models/FileSchemaTestClass.swift
PetstoreClient/Classes/OpenAPIs/Models/FormatTest.swift
PetstoreClient/Classes/OpenAPIs/Models/HasOnlyReadOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/List.swift
PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift
PetstoreClient/Classes/OpenAPIs/Models/MixedPropertiesAndAdditionalPropertiesClass.swift
PetstoreClient/Classes/OpenAPIs/Models/Model200Response.swift
PetstoreClient/Classes/OpenAPIs/Models/Name.swift
PetstoreClient/Classes/OpenAPIs/Models/NumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/Order.swift
PetstoreClient/Classes/OpenAPIs/Models/OuterComposite.swift
PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift
PetstoreClient/Classes/OpenAPIs/Models/Pet.swift
PetstoreClient/Classes/OpenAPIs/Models/ReadOnlyFirst.swift
PetstoreClient/Classes/OpenAPIs/Models/Return.swift
PetstoreClient/Classes/OpenAPIs/Models/SpecialModelName.swift
PetstoreClient/Classes/OpenAPIs/Models/StringBooleanMap.swift
PetstoreClient/Classes/OpenAPIs/Models/Tag.swift
PetstoreClient/Classes/OpenAPIs/Models/TypeHolderDefault.swift
PetstoreClient/Classes/OpenAPIs/Models/TypeHolderExample.swift
PetstoreClient/Classes/OpenAPIs/Models/User.swift
PetstoreClient/Classes/OpenAPIs/OpenISO8601DateFormatter.swift
PetstoreClient/Classes/OpenAPIs/SynchronizedDictionary.swift
README.md
docs/AdditionalPropertiesClass.md
docs/Animal.md
docs/AnimalFarm.md
docs/AnotherFakeAPI.md
docs/ApiResponse.md
docs/ArrayOfArrayOfNumberOnly.md
docs/ArrayOfNumberOnly.md
docs/ArrayTest.md
docs/Capitalization.md
docs/Cat.md
docs/CatAllOf.md
docs/Category.md
docs/ClassModel.md
docs/Client.md
docs/Dog.md
docs/DogAllOf.md
docs/EnumArrays.md
docs/EnumClass.md
docs/EnumTest.md
docs/FakeAPI.md
docs/FakeClassnameTags123API.md
docs/File.md
docs/FileSchemaTestClass.md
docs/FormatTest.md
docs/HasOnlyReadOnly.md
docs/List.md
docs/MapTest.md
docs/MixedPropertiesAndAdditionalPropertiesClass.md
docs/Model200Response.md
docs/Name.md
docs/NumberOnly.md
docs/Order.md
docs/OuterComposite.md
docs/OuterEnum.md
docs/Pet.md
docs/PetAPI.md
docs/ReadOnlyFirst.md
docs/Return.md
docs/SpecialModelName.md
docs/StoreAPI.md
docs/StringBooleanMap.md
docs/Tag.md
docs/TypeHolderDefault.md
docs/TypeHolderExample.md
docs/User.md
docs/UserAPI.md
git_push.sh
project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ public struct APIHelper {
public static func mapValuesToQueryItems(_ source: [String: Any?]) -> [URLQueryItem]? {
let destination = source.filter({ $0.value != nil}).reduce(into: [URLQueryItem]()) { (result, item) in
if let collection = item.value as? [Any?] {
let value = collection.filter({ $0 != nil }).map({"\($0!)"}).joined(separator: ",")
result.append(URLQueryItem(name: item.key, value: value))
collection.filter({ $0 != nil }).map({"\($0!)"}).forEach { value in
result.append(URLQueryItem(name: item.key, value: value))
}
} else if let value = item.value {
result.append(URLQueryItem(name: item.key, value: "\(value)"))
}
Expand Down
110 changes: 110 additions & 0 deletions samples/client/petstore/swift5/combineLibrary/.openapi-generator/FILES
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
.gitignore
Cartfile
Package.swift
PetstoreClient.podspec
PetstoreClient/Classes/OpenAPIs/APIHelper.swift
PetstoreClient/Classes/OpenAPIs/APIs.swift
PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift
PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift
PetstoreClient/Classes/OpenAPIs/CodableHelper.swift
PetstoreClient/Classes/OpenAPIs/Configuration.swift
PetstoreClient/Classes/OpenAPIs/Extensions.swift
PetstoreClient/Classes/OpenAPIs/JSONDataEncoding.swift
PetstoreClient/Classes/OpenAPIs/JSONEncodingHelper.swift
PetstoreClient/Classes/OpenAPIs/Models.swift
PetstoreClient/Classes/OpenAPIs/Models/AdditionalPropertiesClass.swift
PetstoreClient/Classes/OpenAPIs/Models/Animal.swift
PetstoreClient/Classes/OpenAPIs/Models/AnimalFarm.swift
PetstoreClient/Classes/OpenAPIs/Models/ApiResponse.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayOfArrayOfNumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayOfNumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayTest.swift
PetstoreClient/Classes/OpenAPIs/Models/Capitalization.swift
PetstoreClient/Classes/OpenAPIs/Models/Cat.swift
PetstoreClient/Classes/OpenAPIs/Models/CatAllOf.swift
PetstoreClient/Classes/OpenAPIs/Models/Category.swift
PetstoreClient/Classes/OpenAPIs/Models/ClassModel.swift
PetstoreClient/Classes/OpenAPIs/Models/Client.swift
PetstoreClient/Classes/OpenAPIs/Models/Dog.swift
PetstoreClient/Classes/OpenAPIs/Models/DogAllOf.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumArrays.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumClass.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift
PetstoreClient/Classes/OpenAPIs/Models/File.swift
PetstoreClient/Classes/OpenAPIs/Models/FileSchemaTestClass.swift
PetstoreClient/Classes/OpenAPIs/Models/FormatTest.swift
PetstoreClient/Classes/OpenAPIs/Models/HasOnlyReadOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/List.swift
PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift
PetstoreClient/Classes/OpenAPIs/Models/MixedPropertiesAndAdditionalPropertiesClass.swift
PetstoreClient/Classes/OpenAPIs/Models/Model200Response.swift
PetstoreClient/Classes/OpenAPIs/Models/Name.swift
PetstoreClient/Classes/OpenAPIs/Models/NumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/Order.swift
PetstoreClient/Classes/OpenAPIs/Models/OuterComposite.swift
PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift
PetstoreClient/Classes/OpenAPIs/Models/Pet.swift
PetstoreClient/Classes/OpenAPIs/Models/ReadOnlyFirst.swift
PetstoreClient/Classes/OpenAPIs/Models/Return.swift
PetstoreClient/Classes/OpenAPIs/Models/SpecialModelName.swift
PetstoreClient/Classes/OpenAPIs/Models/StringBooleanMap.swift
PetstoreClient/Classes/OpenAPIs/Models/Tag.swift
PetstoreClient/Classes/OpenAPIs/Models/TypeHolderDefault.swift
PetstoreClient/Classes/OpenAPIs/Models/TypeHolderExample.swift
PetstoreClient/Classes/OpenAPIs/Models/User.swift
PetstoreClient/Classes/OpenAPIs/OpenISO8601DateFormatter.swift
PetstoreClient/Classes/OpenAPIs/SynchronizedDictionary.swift
PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift
README.md
docs/AdditionalPropertiesClass.md
docs/Animal.md
docs/AnimalFarm.md
docs/AnotherFakeAPI.md
docs/ApiResponse.md
docs/ArrayOfArrayOfNumberOnly.md
docs/ArrayOfNumberOnly.md
docs/ArrayTest.md
docs/Capitalization.md
docs/Cat.md
docs/CatAllOf.md
docs/Category.md
docs/ClassModel.md
docs/Client.md
docs/Dog.md
docs/DogAllOf.md
docs/EnumArrays.md
docs/EnumClass.md
docs/EnumTest.md
docs/FakeAPI.md
docs/FakeClassnameTags123API.md
docs/File.md
docs/FileSchemaTestClass.md
docs/FormatTest.md
docs/HasOnlyReadOnly.md
docs/List.md
docs/MapTest.md
docs/MixedPropertiesAndAdditionalPropertiesClass.md
docs/Model200Response.md
docs/Name.md
docs/NumberOnly.md
docs/Order.md
docs/OuterComposite.md
docs/OuterEnum.md
docs/Pet.md
docs/PetAPI.md
docs/ReadOnlyFirst.md
docs/Return.md
docs/SpecialModelName.md
docs/StoreAPI.md
docs/StringBooleanMap.md
docs/Tag.md
docs/TypeHolderDefault.md
docs/TypeHolderExample.md
docs/User.md
docs/UserAPI.md
git_push.sh
project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ public struct APIHelper {
public static func mapValuesToQueryItems(_ source: [String: Any?]) -> [URLQueryItem]? {
let destination = source.filter({ $0.value != nil}).reduce(into: [URLQueryItem]()) { (result, item) in
if let collection = item.value as? [Any?] {
let value = collection.filter({ $0 != nil }).map({"\($0!)"}).joined(separator: ",")
result.append(URLQueryItem(name: item.key, value: value))
collection.filter({ $0 != nil }).map({"\($0!)"}).forEach { value in
result.append(URLQueryItem(name: item.key, value: value))
}
} else if let value = item.value {
result.append(URLQueryItem(name: item.key, value: "\(value)"))
}
Expand Down
110 changes: 110 additions & 0 deletions samples/client/petstore/swift5/default/.openapi-generator/FILES
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
.gitignore
Cartfile
Package.swift
PetstoreClient.podspec
PetstoreClient/Classes/OpenAPIs/APIHelper.swift
PetstoreClient/Classes/OpenAPIs/APIs.swift
PetstoreClient/Classes/OpenAPIs/APIs/AnotherFakeAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/FakeAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/FakeClassnameTags123API.swift
PetstoreClient/Classes/OpenAPIs/APIs/PetAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/StoreAPI.swift
PetstoreClient/Classes/OpenAPIs/APIs/UserAPI.swift
PetstoreClient/Classes/OpenAPIs/CodableHelper.swift
PetstoreClient/Classes/OpenAPIs/Configuration.swift
PetstoreClient/Classes/OpenAPIs/Extensions.swift
PetstoreClient/Classes/OpenAPIs/JSONDataEncoding.swift
PetstoreClient/Classes/OpenAPIs/JSONEncodingHelper.swift
PetstoreClient/Classes/OpenAPIs/Models.swift
PetstoreClient/Classes/OpenAPIs/Models/AdditionalPropertiesClass.swift
PetstoreClient/Classes/OpenAPIs/Models/Animal.swift
PetstoreClient/Classes/OpenAPIs/Models/AnimalFarm.swift
PetstoreClient/Classes/OpenAPIs/Models/ApiResponse.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayOfArrayOfNumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayOfNumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/ArrayTest.swift
PetstoreClient/Classes/OpenAPIs/Models/Capitalization.swift
PetstoreClient/Classes/OpenAPIs/Models/Cat.swift
PetstoreClient/Classes/OpenAPIs/Models/CatAllOf.swift
PetstoreClient/Classes/OpenAPIs/Models/Category.swift
PetstoreClient/Classes/OpenAPIs/Models/ClassModel.swift
PetstoreClient/Classes/OpenAPIs/Models/Client.swift
PetstoreClient/Classes/OpenAPIs/Models/Dog.swift
PetstoreClient/Classes/OpenAPIs/Models/DogAllOf.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumArrays.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumClass.swift
PetstoreClient/Classes/OpenAPIs/Models/EnumTest.swift
PetstoreClient/Classes/OpenAPIs/Models/File.swift
PetstoreClient/Classes/OpenAPIs/Models/FileSchemaTestClass.swift
PetstoreClient/Classes/OpenAPIs/Models/FormatTest.swift
PetstoreClient/Classes/OpenAPIs/Models/HasOnlyReadOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/List.swift
PetstoreClient/Classes/OpenAPIs/Models/MapTest.swift
PetstoreClient/Classes/OpenAPIs/Models/MixedPropertiesAndAdditionalPropertiesClass.swift
PetstoreClient/Classes/OpenAPIs/Models/Model200Response.swift
PetstoreClient/Classes/OpenAPIs/Models/Name.swift
PetstoreClient/Classes/OpenAPIs/Models/NumberOnly.swift
PetstoreClient/Classes/OpenAPIs/Models/Order.swift
PetstoreClient/Classes/OpenAPIs/Models/OuterComposite.swift
PetstoreClient/Classes/OpenAPIs/Models/OuterEnum.swift
PetstoreClient/Classes/OpenAPIs/Models/Pet.swift
PetstoreClient/Classes/OpenAPIs/Models/ReadOnlyFirst.swift
PetstoreClient/Classes/OpenAPIs/Models/Return.swift
PetstoreClient/Classes/OpenAPIs/Models/SpecialModelName.swift
PetstoreClient/Classes/OpenAPIs/Models/StringBooleanMap.swift
PetstoreClient/Classes/OpenAPIs/Models/Tag.swift
PetstoreClient/Classes/OpenAPIs/Models/TypeHolderDefault.swift
PetstoreClient/Classes/OpenAPIs/Models/TypeHolderExample.swift
PetstoreClient/Classes/OpenAPIs/Models/User.swift
PetstoreClient/Classes/OpenAPIs/OpenISO8601DateFormatter.swift
PetstoreClient/Classes/OpenAPIs/SynchronizedDictionary.swift
PetstoreClient/Classes/OpenAPIs/URLSessionImplementations.swift
README.md
docs/AdditionalPropertiesClass.md
docs/Animal.md
docs/AnimalFarm.md
docs/AnotherFakeAPI.md
docs/ApiResponse.md
docs/ArrayOfArrayOfNumberOnly.md
docs/ArrayOfNumberOnly.md
docs/ArrayTest.md
docs/Capitalization.md
docs/Cat.md
docs/CatAllOf.md
docs/Category.md
docs/ClassModel.md
docs/Client.md
docs/Dog.md
docs/DogAllOf.md
docs/EnumArrays.md
docs/EnumClass.md
docs/EnumTest.md
docs/FakeAPI.md
docs/FakeClassnameTags123API.md
docs/File.md
docs/FileSchemaTestClass.md
docs/FormatTest.md
docs/HasOnlyReadOnly.md
docs/List.md
docs/MapTest.md
docs/MixedPropertiesAndAdditionalPropertiesClass.md
docs/Model200Response.md
docs/Name.md
docs/NumberOnly.md
docs/Order.md
docs/OuterComposite.md
docs/OuterEnum.md
docs/Pet.md
docs/PetAPI.md
docs/ReadOnlyFirst.md
docs/Return.md
docs/SpecialModelName.md
docs/StoreAPI.md
docs/StringBooleanMap.md
docs/Tag.md
docs/TypeHolderDefault.md
docs/TypeHolderExample.md
docs/User.md
docs/UserAPI.md
git_push.sh
project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,9 @@ public struct APIHelper {
public static func mapValuesToQueryItems(_ source: [String: Any?]) -> [URLQueryItem]? {
let destination = source.filter({ $0.value != nil}).reduce(into: [URLQueryItem]()) { (result, item) in
if let collection = item.value as? [Any?] {
let value = collection.filter({ $0 != nil }).map({"\($0!)"}).joined(separator: ",")
result.append(URLQueryItem(name: item.key, value: value))
collection.filter({ $0 != nil }).map({"\($0!)"}).forEach { value in
result.append(URLQueryItem(name: item.key, value: value))
}
} else if let value = item.value {
result.append(URLQueryItem(name: item.key, value: "\(value)"))
}
Expand Down
Loading

0 comments on commit 8da06b0

Please sign in to comment.