@@ -35,7 +35,7 @@ public class PostgrestBuilder {
35
35
}
36
36
37
37
let session = URLSession . shared
38
- let dataTask = session. dataTask ( with: request, completionHandler: { [ unowned self ] ( data, response, error) -> Void in
38
+ let dataTask = session. dataTask ( with: request, completionHandler: { ( data, response, error) -> Void in
39
39
if let error = error {
40
40
completion ( . failure( error) )
41
41
return
@@ -52,8 +52,8 @@ public class PostgrestBuilder {
52
52
}
53
53
54
54
do {
55
- try validate ( data: data, response: response)
56
- let response = try parse ( data: data, response: response)
55
+ try Self . validate ( data: data, response: response)
56
+ let response = try Self . parse ( data: data, response: response, request : request )
57
57
completion ( . success( response) )
58
58
} catch {
59
59
completion ( . failure( error) )
@@ -68,7 +68,7 @@ public class PostgrestBuilder {
68
68
/// - data: `Data` received from the server.
69
69
/// - response: `HTTPURLResponse` received from the server.
70
70
/// - Throws: Throws `PostgrestError` if invalid JSON object.
71
- private func validate( data: Data , response: HTTPURLResponse ) throws {
71
+ private static func validate( data: Data , response: HTTPURLResponse ) throws {
72
72
if 200 ..< 300 ~= response. statusCode {
73
73
return
74
74
}
@@ -86,11 +86,11 @@ public class PostgrestBuilder {
86
86
/// - response: Response received from the server
87
87
/// - Throws: Throws an `Error` if invalid JSON.
88
88
/// - Returns: Returns a `PostgrestResponse`
89
- private func parse( data: Data , response: HTTPURLResponse ) throws -> PostgrestResponse {
89
+ private static func parse( data: Data , response: HTTPURLResponse , request : URLRequest ) throws -> PostgrestResponse {
90
90
var body : Any = data
91
91
var count : Int ?
92
92
93
- if method == " HEAD " {
93
+ if request . httpMethod == " HEAD " {
94
94
if let accept = response. allHeaderFields [ " Accept " ] as? String , accept == " text/csv " {
95
95
body = data
96
96
} else {
@@ -160,6 +160,9 @@ public class PostgrestBuilder {
160
160
var request = URLRequest ( url: url)
161
161
request. httpMethod = method
162
162
request. allHTTPHeaderFields = headers
163
+ if let body = body {
164
+ request. httpBody = try JSONSerialization . data ( withJSONObject: body, options: [ ] )
165
+ }
163
166
return request
164
167
}
165
168
0 commit comments