@@ -12,7 +12,7 @@ extension Query {
12
12
struct URLEncoder < Key: RawRepresentable > where Key. RawValue == String {
13
13
14
14
var queryItems : [ URLQueryItem ] = [ ]
15
-
15
+
16
16
mutating func set< T: URLEncodable > ( _ value: T ? , for key: Key ) {
17
17
guard let value = value else { return }
18
18
queryItems. append ( . init( name: key. rawValue, value: value. urlEncodedString) )
@@ -30,39 +30,39 @@ extension Query {
30
30
31
31
mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == [ String ] {
32
32
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 ( )
34
34
queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
35
35
}
36
36
37
37
mutating func set( _ value: FiltersStorage ? , for key: Key ) {
38
- guard let value = value else { return }
38
+ guard let value = value? . rawValue else { return }
39
39
func toString( _ singleOrList: SingleOrList < String > ) -> String {
40
40
switch singleOrList {
41
41
case . single( let value) :
42
- return value
42
+ return value. wrappedInQuotes ( )
43
43
case . list( let list) :
44
- return " [ \( list. joined ( separator: " , " ) ) ] "
44
+ return list. map { $0 . wrappedInQuotes ( ) } . joined ( separator: " , " ) . wrappedInBrackets ( )
45
45
}
46
46
}
47
- let valueToSet = " [ \( value. rawValue . map ( toString) . joined ( separator: " , " ) ) ] "
47
+ let valueToSet = value. map ( toString) . joined ( separator: " , " ) . wrappedInBrackets ( )
48
48
queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
49
49
}
50
50
51
51
mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == BoundingBox {
52
52
guard let value = value else { return }
53
- let valueToSet = " [ \( value. map ( \. urlEncodedString) . joined ( separator: " , " ) ) ] "
53
+ let valueToSet = value. map ( \. urlEncodedString) . joined ( separator: " , " ) . wrappedInBrackets ( )
54
54
queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
55
55
}
56
56
57
57
mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == AroundPrecision {
58
58
guard let value = value else { return }
59
- let valueToSet = " [ \( value. map ( \. urlEncodedString) . joined ( separator: " , " ) ) ] "
59
+ let valueToSet = value. map ( \. urlEncodedString) . joined ( separator: " , " ) . wrappedInBrackets ( )
60
60
queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
61
61
}
62
62
63
63
mutating func set< S: Sequence > ( _ value: S ? , for key: Key ) where S. Element == Polygon {
64
64
guard let value = value else { return }
65
- let valueToSet = " [ \( value. map ( \. urlEncodedString) . joined ( separator: " , " ) ) ] "
65
+ let valueToSet = value. map ( \. urlEncodedString) . joined ( separator: " , " ) . wrappedInBrackets ( )
66
66
queryItems. append ( . init( name: key. rawValue, value: valueToSet) )
67
67
}
68
68
0 commit comments