@@ -31,98 +31,61 @@ extension Converter {
31
31
)
32
32
}
33
33
34
- // | client | set | request path | text | string-convertible | required | renderedRequestPath |
35
- public func renderedRequestPath (
34
+ // | client | set | request path | URI | required | renderedPath |
35
+ public func renderedPath (
36
36
template: String ,
37
- parameters: [ any _StringConvertible ]
37
+ parameters: [ any Encodable ]
38
38
) throws -> String {
39
39
var renderedString = template
40
+ let encoder = URIEncoder (
41
+ configuration: . init(
42
+ style: . simple,
43
+ explode: false ,
44
+ spaceEscapingCharacter: . percentEncoded,
45
+ dateTranscoder: configuration. dateTranscoder
46
+ )
47
+ )
40
48
for parameter in parameters {
49
+ let value = try encoder. encode ( parameter, forKey: " " )
41
50
if let range = renderedString. range ( of: " {} " ) {
42
51
renderedString = renderedString. replacingOccurrences (
43
52
of: " {} " ,
44
- with: parameter . description ,
53
+ with: value ,
45
54
range: range
46
55
)
47
56
}
48
57
}
49
58
return renderedString
50
59
}
51
60
52
- // | client | set | request query | text | string-convertible | both | setQueryItemAsText |
53
- public func setQueryItemAsText < T: _StringConvertible > (
61
+ // | client | set | request query | URI | both | setQueryItemAsURI |
62
+ public func setQueryItemAsURI < T: Encodable > (
54
63
in request: inout Request ,
55
64
style: ParameterStyle ? ,
56
65
explode: Bool ? ,
57
66
name: String ,
58
67
value: T ?
59
68
) throws {
60
- try setQueryItem (
69
+ try setEscapedQueryItem (
61
70
in: & request,
62
71
style: style,
63
72
explode: explode,
64
73
name: name,
65
74
value: value,
66
- convert: convertStringConvertibleToText
67
- )
68
- }
69
-
70
- // | client | set | request query | text | array of string-convertibles | both | setQueryItemAsText |
71
- public func setQueryItemAsText< T: _StringConvertible > (
72
- in request: inout Request ,
73
- style: ParameterStyle ? ,
74
- explode: Bool ? ,
75
- name: String ,
76
- value: [ T ] ?
77
- ) throws {
78
- try setQueryItems (
79
- in: & request,
80
- style: style,
81
- explode: explode,
82
- name: name,
83
- values: value,
84
- convert: convertStringConvertibleToText
85
- )
86
- }
87
-
88
- // | client | set | request query | text | date | both | setQueryItemAsText |
89
- public func setQueryItemAsText(
90
- in request: inout Request ,
91
- style: ParameterStyle ? ,
92
- explode: Bool ? ,
93
- name: String ,
94
- value: Date ?
95
- ) throws {
96
- try setQueryItem (
97
- in: & request,
98
- style: style,
99
- explode: explode,
100
- name: name,
101
- value: value,
102
- convert: convertDateToText
103
- )
104
- }
105
-
106
- // | client | set | request query | text | array of dates | both | setQueryItemAsText |
107
- public func setQueryItemAsText(
108
- in request: inout Request ,
109
- style: ParameterStyle ? ,
110
- explode: Bool ? ,
111
- name: String ,
112
- value: [ Date ] ?
113
- ) throws {
114
- try setQueryItems (
115
- in: & request,
116
- style: style,
117
- explode: explode,
118
- name: name,
119
- values: value,
120
- convert: convertDateToText
75
+ convert: { value, style, explode in
76
+ try convertToURI (
77
+ style: style,
78
+ explode: explode,
79
+ inBody: false ,
80
+ key: name,
81
+ value: value
82
+ )
83
+ }
121
84
)
122
85
}
123
86
124
- // | client | set | request body | text | string-convertible | optional | setOptionalRequestBodyAsText |
125
- public func setOptionalRequestBodyAsText < T: _StringConvertible > (
87
+ // | client | set | request body | string | optional | setOptionalRequestBodyAsString |
88
+ public func setOptionalRequestBodyAsString < T: Encodable > (
126
89
_ value: T ? ,
127
90
headerFields: inout [ HeaderField ] ,
128
91
contentType: String
@@ -131,12 +94,12 @@ extension Converter {
131
94
value,
132
95
headerFields: & headerFields,
133
96
contentType: contentType,
134
- convert: convertStringConvertibleToTextData
97
+ convert: convertToStringData
135
98
)
136
99
}
137
100
138
- // | client | set | request body | text | string-convertible | required | setRequiredRequestBodyAsText |
139
- public func setRequiredRequestBodyAsText < T: _StringConvertible > (
101
+ // | client | set | request body | string | required | setRequiredRequestBodyAsString |
102
+ public func setRequiredRequestBodyAsString < T: Encodable > (
140
103
_ value: T ,
141
104
headerFields: inout [ HeaderField ] ,
142
105
contentType: String
@@ -145,39 +108,11 @@ extension Converter {
145
108
value,
146
109
headerFields: & headerFields,
147
110
contentType: contentType,
148
- convert: convertStringConvertibleToTextData
149
- )
150
- }
151
-
152
- // | client | set | request body | text | date | optional | setOptionalRequestBodyAsText |
153
- public func setOptionalRequestBodyAsText(
154
- _ value: Date ? ,
155
- headerFields: inout [ HeaderField ] ,
156
- contentType: String
157
- ) throws -> Data ? {
158
- try setOptionalRequestBody (
159
- value,
160
- headerFields: & headerFields,
161
- contentType: contentType,
162
- convert: convertDateToTextData
111
+ convert: convertToStringData
163
112
)
164
113
}
165
114
166
- // | client | set | request body | text | date | required | setRequiredRequestBodyAsText |
167
- public func setRequiredRequestBodyAsText(
168
- _ value: Date ,
169
- headerFields: inout [ HeaderField ] ,
170
- contentType: String
171
- ) throws -> Data {
172
- try setRequiredRequestBody (
173
- value,
174
- headerFields: & headerFields,
175
- contentType: contentType,
176
- convert: convertDateToTextData
177
- )
178
- }
179
-
180
- // | client | set | request body | JSON | codable | optional | setOptionalRequestBodyAsJSON |
115
+ // | client | set | request body | JSON | optional | setOptionalRequestBodyAsJSON |
181
116
public func setOptionalRequestBodyAsJSON< T: Encodable > (
182
117
_ value: T ? ,
183
118
headerFields: inout [ HeaderField ] ,
@@ -191,7 +126,7 @@ extension Converter {
191
126
)
192
127
}
193
128
194
- // | client | set | request body | JSON | codable | required | setRequiredRequestBodyAsJSON |
129
+ // | client | set | request body | JSON | required | setRequiredRequestBodyAsJSON |
195
130
public func setRequiredRequestBodyAsJSON< T: Encodable > (
196
131
_ value: T ,
197
132
headerFields: inout [ HeaderField ] ,
@@ -205,7 +140,7 @@ extension Converter {
205
140
)
206
141
}
207
142
208
- // | client | set | request body | binary | data | optional | setOptionalRequestBodyAsBinary |
143
+ // | client | set | request body | binary | optional | setOptionalRequestBodyAsBinary |
209
144
public func setOptionalRequestBodyAsBinary(
210
145
_ value: Data ? ,
211
146
headerFields: inout [ HeaderField ] ,
@@ -219,7 +154,7 @@ extension Converter {
219
154
)
220
155
}
221
156
222
- // | client | set | request body | binary | data | required | setRequiredRequestBodyAsBinary |
157
+ // | client | set | request body | binary | required | setRequiredRequestBodyAsBinary |
223
158
public func setRequiredRequestBodyAsBinary(
224
159
_ value: Data ,
225
160
headerFields: inout [ HeaderField ] ,
@@ -233,8 +168,8 @@ extension Converter {
233
168
)
234
169
}
235
170
236
- // | client | get | response body | text | string-convertible | required | getResponseBodyAsText |
237
- public func getResponseBodyAsText < T: _StringConvertible , C> (
171
+ // | client | get | response body | string | required | getResponseBodyAsString |
172
+ public func getResponseBodyAsString < T: Decodable , C> (
238
173
_ type: T . Type ,
239
174
from data: Data ,
240
175
transforming transform: ( T ) -> C
@@ -243,25 +178,11 @@ extension Converter {
243
178
type,
244
179
from: data,
245
180
transforming: transform,
246
- convert: convertTextDataToStringConvertible
247
- )
248
- }
249
-
250
- // | client | get | response body | text | date | required | getResponseBodyAsText |
251
- public func getResponseBodyAsText< C> (
252
- _ type: Date . Type ,
253
- from data: Data ,
254
- transforming transform: ( Date ) -> C
255
- ) throws -> C {
256
- try getResponseBody (
257
- type,
258
- from: data,
259
- transforming: transform,
260
- convert: convertTextDataToDate
181
+ convert: convertFromStringData
261
182
)
262
183
}
263
184
264
- // | client | get | response body | JSON | codable | required | getResponseBodyAsJSON |
185
+ // | client | get | response body | JSON | required | getResponseBodyAsJSON |
265
186
public func getResponseBodyAsJSON< T: Decodable , C> (
266
187
_ type: T . Type ,
267
188
from data: Data ,
@@ -271,11 +192,11 @@ extension Converter {
271
192
type,
272
193
from: data,
273
194
transforming: transform,
274
- convert: convertJSONToCodable
195
+ convert: convertJSONToBodyCodable
275
196
)
276
197
}
277
198
278
- // | client | get | response body | binary | data | required | getResponseBodyAsBinary |
199
+ // | client | get | response body | binary | required | getResponseBodyAsBinary |
279
200
public func getResponseBodyAsBinary< C> (
280
201
_ type: Data . Type ,
281
202
from data: Data ,
0 commit comments