@@ -63,7 +63,7 @@ public class HTTPClient {
63
63
64
64
let dataTask = session. uploadTask ( with: urlRequest, fromFile: batch) { [ weak self] ( data, response, error) in
65
65
guard let self else { return }
66
- handleResponse ( data: data, response: response, error: error, completion: completion)
66
+ handleResponse ( data: data, response: response, error: error, url : uploadURL , completion: completion)
67
67
}
68
68
69
69
dataTask. resume ( )
@@ -88,31 +88,31 @@ public class HTTPClient {
88
88
89
89
let dataTask = session. uploadTask ( with: urlRequest, from: data) { [ weak self] ( data, response, error) in
90
90
guard let self else { return }
91
- handleResponse ( data: data, response: response, error: error, completion: completion)
91
+ handleResponse ( data: data, response: response, error: error, url : uploadURL , completion: completion)
92
92
}
93
93
94
94
dataTask. resume ( )
95
95
return dataTask
96
96
}
97
97
98
- private func handleResponse( data: Data ? , response: URLResponse ? , error: Error ? , completion: @escaping ( _ result: Result < Bool , Error > ) -> Void ) {
98
+ private func handleResponse( data: Data ? , response: URLResponse ? , error: Error ? , url : URL ? , completion: @escaping ( _ result: Result < Bool , Error > ) -> Void ) {
99
99
if let error = error {
100
100
analytics? . log ( message: " Error uploading request \( error. localizedDescription) . " )
101
- analytics? . reportInternalError ( AnalyticsError . networkUnknown ( error) )
101
+ analytics? . reportInternalError ( AnalyticsError . networkUnknown ( url , error) )
102
102
completion ( . failure( HTTPClientErrors . unknown ( error: error) ) )
103
103
} else if let httpResponse = response as? HTTPURLResponse {
104
104
switch ( httpResponse. statusCode) {
105
105
case 1 ..< 300 :
106
106
completion ( . success( true ) )
107
107
return
108
108
case 300 ..< 400 :
109
- analytics? . reportInternalError ( AnalyticsError . networkUnexpectedHTTPCode ( httpResponse. statusCode) )
109
+ analytics? . reportInternalError ( AnalyticsError . networkUnexpectedHTTPCode ( url , httpResponse. statusCode) )
110
110
completion ( . failure( HTTPClientErrors . statusCode ( code: httpResponse. statusCode) ) )
111
111
case 429 :
112
- analytics? . reportInternalError ( AnalyticsError . networkServerLimited ( httpResponse. statusCode) )
112
+ analytics? . reportInternalError ( AnalyticsError . networkServerLimited ( url , httpResponse. statusCode) )
113
113
completion ( . failure( HTTPClientErrors . statusCode ( code: httpResponse. statusCode) ) )
114
114
default :
115
- analytics? . reportInternalError ( AnalyticsError . networkServerRejected ( httpResponse. statusCode) )
115
+ analytics? . reportInternalError ( AnalyticsError . networkServerRejected ( url , httpResponse. statusCode) )
116
116
completion ( . failure( HTTPClientErrors . statusCode ( code: httpResponse. statusCode) ) )
117
117
}
118
118
}
@@ -128,21 +128,21 @@ public class HTTPClient {
128
128
129
129
let dataTask = session. dataTask ( with: urlRequest) { [ weak self] ( data, response, error) in
130
130
if let error = error {
131
- self ? . analytics? . reportInternalError ( AnalyticsError . networkUnknown ( error) )
131
+ self ? . analytics? . reportInternalError ( AnalyticsError . settingsFail ( AnalyticsError . networkUnknown ( settingsURL , error) ) )
132
132
completion ( false , nil )
133
133
return
134
134
}
135
135
136
136
if let httpResponse = response as? HTTPURLResponse {
137
137
if httpResponse. statusCode > 300 {
138
- self ? . analytics? . reportInternalError ( AnalyticsError . networkUnexpectedHTTPCode ( httpResponse. statusCode) )
138
+ self ? . analytics? . reportInternalError ( AnalyticsError . settingsFail ( AnalyticsError . networkUnexpectedHTTPCode ( settingsURL , httpResponse. statusCode) ) )
139
139
completion ( false , nil )
140
140
return
141
141
}
142
142
}
143
143
144
144
guard let data = data else {
145
- self ? . analytics? . reportInternalError ( AnalyticsError . networkInvalidData)
145
+ self ? . analytics? . reportInternalError ( AnalyticsError . settingsFail ( AnalyticsError . networkInvalidData) )
146
146
completion ( false , nil )
147
147
return
148
148
}
@@ -151,7 +151,7 @@ public class HTTPClient {
151
151
let responseJSON = try JSONDecoder . default. decode ( Settings . self, from: data)
152
152
completion ( true , responseJSON)
153
153
} catch {
154
- self ? . analytics? . reportInternalError ( AnalyticsError . jsonUnableToDeserialize ( error) )
154
+ self ? . analytics? . reportInternalError ( AnalyticsError . settingsFail ( AnalyticsError . jsonUnableToDeserialize ( error) ) )
155
155
completion ( false , nil )
156
156
return
157
157
}
0 commit comments