@@ -12,7 +12,7 @@ extension Query {
1212 struct URLEncoder < Key: RawRepresentable > where Key. RawValue == String {
1313
1414 var queryItems : [ URLQueryItem ] = [ ]
15-
15+
1616 mutating func set< T: URLEncodable > ( _ value: T ? , for key: Key ) {
1717 guard let value = value else { return }
1818 queryItems. append ( . init( name: key. rawValue, value: value. urlEncodedString) )
@@ -30,39 +30,39 @@ extension Query {
3030
3131 mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == [ String ] {
3232 guard let value = value else { return }
33- let valueToSet = " [ \( value. map { " [ \( $0. map ( \. urlEncodedString) . sorted ( ) . joined ( separator: " , " ) ) ] " } . joined ( separator: " , " ) ) ] "
33+ let valueToSet = value. map { $0. map ( \. urlEncodedString) . sorted ( ) . joined ( separator: " , " ) . wrappedInBrackets ( ) } . joined ( separator: " , " ) . wrappedInBrackets ( )
3434 queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
3535 }
3636
3737 mutating func set( _ value: FiltersStorage ? , for key: Key ) {
38- guard let value = value else { return }
38+ guard let value = value? . rawValue else { return }
3939 func toString( _ singleOrList: SingleOrList < String > ) -> String {
4040 switch singleOrList {
4141 case . single( let value) :
42- return value
42+ return value. wrappedInQuotes ( )
4343 case . list( let list) :
44- return " [ \( list. joined ( separator: " , " ) ) ] "
44+ return list. map { $0 . wrappedInQuotes ( ) } . joined ( separator: " , " ) . wrappedInBrackets ( )
4545 }
4646 }
47- let valueToSet = " [ \( value. rawValue . map ( toString) . joined ( separator: " , " ) ) ] "
47+ let valueToSet = value. map ( toString) . joined ( separator: " , " ) . wrappedInBrackets ( )
4848 queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
4949 }
5050
5151 mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == BoundingBox {
5252 guard let value = value else { return }
53- let valueToSet = " [ \( value. map ( \. urlEncodedString) . joined ( separator: " , " ) ) ] "
53+ let valueToSet = value. map ( \. urlEncodedString) . joined ( separator: " , " ) . wrappedInBrackets ( )
5454 queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
5555 }
5656
5757 mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == AroundPrecision {
5858 guard let value = value else { return }
59- let valueToSet = " [ \( value. map ( \. urlEncodedString) . joined ( separator: " , " ) ) ] "
59+ let valueToSet = value. map ( \. urlEncodedString) . joined ( separator: " , " ) . wrappedInBrackets ( )
6060 queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
6161 }
6262
6363 mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == Polygon {
6464 guard let value = value else { return }
65- let valueToSet = " [ \( value. map ( \. urlEncodedString) . joined ( separator: " , " ) ) ] "
65+ let valueToSet = value. map ( \. urlEncodedString) . joined ( separator: " , " ) . wrappedInBrackets ( )
6666 queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
6767 }
6868
0 commit comments