@@ -31,98 +31,61 @@ extension Converter {
3131        ) 
3232    } 
3333
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 ( 
3636        template:  String , 
37-         parameters:  [ any  _StringConvertible ] 
37+         parameters:  [ any  Encodable ] 
3838    )  throws  ->  String  { 
3939        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+         ) 
4048        for  parameter  in  parameters { 
49+             let  value  =  try . encode ( parameter,  forKey:  " " ) 
4150            if  let  range =  renderedString. range ( of:  " {} " )  { 
4251                renderedString =  renderedString. replacingOccurrences ( 
4352                    of:  " {} " , 
44-                     with:  parameter . description , 
53+                     with:  value , 
4554                    range:  range
4655                ) 
4756            } 
4857        } 
4958        return  renderedString
5059    } 
5160
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 > ( 
5463        in request:  inout  Request , 
5564        style:  ParameterStyle ? , 
5665        explode:  Bool ? , 
5766        name:  String , 
5867        value:  T ? 
5968    )  throws  { 
60-         try setQueryItem ( 
69+         try setEscapedQueryItem ( 
6170            in:  & request, 
6271            style:  style, 
6372            explode:  explode, 
6473            name:  name, 
6574            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+             } 
12184        ) 
12285    } 
12386
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 > ( 
12689        _ value:  T ? , 
12790        headerFields:  inout  [ HeaderField ] , 
12891        contentType:  String 
@@ -131,12 +94,12 @@ extension Converter {
13194            value, 
13295            headerFields:  & headerFields, 
13396            contentType:  contentType, 
134-             convert:  convertStringConvertibleToTextData 
97+             convert:  convertToStringData 
13598        ) 
13699    } 
137100
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 > ( 
140103        _ value:  T , 
141104        headerFields:  inout  [ HeaderField ] , 
142105        contentType:  String 
@@ -145,39 +108,11 @@ extension Converter {
145108            value, 
146109            headerFields:  & headerFields, 
147110            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
163112        ) 
164113    } 
165114
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 |
181116    public  func  setOptionalRequestBodyAsJSON< T:  Encodable > ( 
182117        _ value:  T ? , 
183118        headerFields:  inout  [ HeaderField ] , 
@@ -191,7 +126,7 @@ extension Converter {
191126        ) 
192127    } 
193128
194-     //    | client | set | request body | JSON | codable |  required | setRequiredRequestBodyAsJSON |
129+     //    | client | set | request body | JSON | required | setRequiredRequestBodyAsJSON |
195130    public  func  setRequiredRequestBodyAsJSON< T:  Encodable > ( 
196131        _ value:  T , 
197132        headerFields:  inout  [ HeaderField ] , 
@@ -205,7 +140,7 @@ extension Converter {
205140        ) 
206141    } 
207142
208-     //    | client | set | request body | binary | data |  optional | setOptionalRequestBodyAsBinary |
143+     //    | client | set | request body | binary | optional | setOptionalRequestBodyAsBinary |
209144    public  func  setOptionalRequestBodyAsBinary( 
210145        _ value:  Data ? , 
211146        headerFields:  inout  [ HeaderField ] , 
@@ -219,7 +154,7 @@ extension Converter {
219154        ) 
220155    } 
221156
222-     //    | client | set | request body | binary | data |  required | setRequiredRequestBodyAsBinary |
157+     //    | client | set | request body | binary | required | setRequiredRequestBodyAsBinary |
223158    public  func  setRequiredRequestBodyAsBinary( 
224159        _ value:  Data , 
225160        headerFields:  inout  [ HeaderField ] , 
@@ -233,8 +168,8 @@ extension Converter {
233168        ) 
234169    } 
235170
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> ( 
238173        _ type:  T . Type , 
239174        from data:  Data , 
240175        transforming transform:  ( T )  ->  C 
@@ -243,25 +178,11 @@ extension Converter {
243178            type, 
244179            from:  data, 
245180            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
261182        ) 
262183    } 
263184
264-     //    | client | get | response body | JSON | codable |  required | getResponseBodyAsJSON |
185+     //    | client | get | response body | JSON | required | getResponseBodyAsJSON |
265186    public  func  getResponseBodyAsJSON< T:  Decodable ,  C> ( 
266187        _ type:  T . Type , 
267188        from data:  Data , 
@@ -271,11 +192,11 @@ extension Converter {
271192            type, 
272193            from:  data, 
273194            transforming:  transform, 
274-             convert:  convertJSONToCodable 
195+             convert:  convertJSONToBodyCodable 
275196        ) 
276197    } 
277198
278-     //    | client | get | response body | binary | data |  required | getResponseBodyAsBinary |
199+     //    | client | get | response body | binary | required | getResponseBodyAsBinary |
279200    public  func  getResponseBodyAsBinary< C> ( 
280201        _ type:  Data . Type , 
281202        from data:  Data , 
0 commit comments