@@ -649,13 +649,19 @@ public class Client {
649
649
params = [ " cursor " : " \( cursor) " ]
650
650
}
651
651
652
- return try await fetch ( method, path, params: params)
652
+ let request = try createRequest ( method: method, path: path, params: params)
653
+ return try await sendRequest ( request)
653
654
}
654
655
655
656
private func fetch< T: Decodable > ( _ method: Method ,
656
657
_ path: String ,
657
658
params: [ String : Value ] ? = nil )
658
659
async throws -> T {
660
+ let request = try createRequest ( method: method, path: path, params: params)
661
+ return try await sendRequest ( request)
662
+ }
663
+
664
+ private func createRequest( method: Method , path: String , params: [ String : Value ] ? = nil ) throws -> URLRequest {
659
665
var urlComponents = URLComponents ( string: self . baseURLString. appending ( path) )
660
666
var httpBody : Data ? = nil
661
667
@@ -673,6 +679,10 @@ public class Client {
673
679
let encoder = JSONEncoder ( )
674
680
httpBody = try encoder. encode ( params)
675
681
}
682
+ case . query:
683
+ if let params, let queryString = params [ " query " ] {
684
+ httpBody = queryString. description. data ( using: . utf8)
685
+ }
676
686
}
677
687
678
688
guard let url = urlComponents? . url else {
@@ -696,6 +706,10 @@ public class Client {
696
706
request. addValue ( userAgent, forHTTPHeaderField: " User-Agent " )
697
707
}
698
708
709
+ return request
710
+ }
711
+
712
+ private func sendRequest< T: Decodable > ( _ request: URLRequest ) async throws -> T {
699
713
let ( data, response) = try await session. data ( for: request)
700
714
701
715
let decoder = JSONDecoder ( )
0 commit comments