|
|
|
|
@ -282,11 +282,12 @@ public class Store { |
|
|
|
|
|
|
|
|
|
guard let failedAPICallsCollection = self._failedAPICallsCollection, |
|
|
|
|
let collection = self._collections[collectionName], |
|
|
|
|
collectionName != FailedAPICall.resourceName(), |
|
|
|
|
let apiCall = try? collection.apiCallById(apiCallId) else { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if !failedAPICallsCollection.contains(where: { $0.callId == apiCallId }) && apiCall.attemptsCount > 5 { |
|
|
|
|
if !failedAPICallsCollection.contains(where: { $0.callId == apiCallId }) && apiCall.attemptsCount > 6 { |
|
|
|
|
|
|
|
|
|
do { |
|
|
|
|
let string = try apiCall.jsonString() |
|
|
|
|
@ -299,4 +300,22 @@ public class Store { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func logFailedAPICall(request: URLRequest, error: String) { |
|
|
|
|
|
|
|
|
|
guard let failedAPICallsCollection = self._failedAPICallsCollection, |
|
|
|
|
let body: Data = request.httpBody, |
|
|
|
|
let bodyString = String(data: body, encoding: .utf8), |
|
|
|
|
let url = request.url?.absoluteString else { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
do { |
|
|
|
|
let failedAPICall = FailedAPICall(callId: request.hashValue.formatted(), type: url, apiCall: bodyString, error: error) |
|
|
|
|
try failedAPICallsCollection.addOrUpdate(instance: failedAPICall) |
|
|
|
|
} catch { |
|
|
|
|
Logger.error(error) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|