mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2026-08-29 14:47:21 +02:00
iOS update retry request handler to handle string bodies
This commit is contained in:
@@ -102,7 +102,7 @@ public class AbsDatabase: CAPPlugin, CAPBridgedPlugin {
|
|||||||
let id = call.getString("serverConnectionConfigId", "")
|
let id = call.getString("serverConnectionConfigId", "")
|
||||||
|
|
||||||
// Remove refresh token if it exists
|
// Remove refresh token if it exists
|
||||||
secureStorage.removeRefreshToken(serverConnectionConfigId: id)
|
_ = secureStorage.removeRefreshToken(serverConnectionConfigId: id)
|
||||||
|
|
||||||
Database.shared.deleteServerConnectionConfig(id: id)
|
Database.shared.deleteServerConnectionConfig(id: id)
|
||||||
call.resolve()
|
call.resolve()
|
||||||
|
|||||||
@@ -275,12 +275,33 @@ class ApiClient {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
retryRequest.responseDecodable(of: decodable) { response in
|
// Handle the response
|
||||||
switch response.result {
|
retryRequest.response { response in
|
||||||
case .success(let obj):
|
if let statusCode = response.response?.statusCode, (200...299).contains(statusCode) {
|
||||||
callback?(obj)
|
// Check if response has data
|
||||||
case .failure(let error):
|
if let data = response.data, !data.isEmpty {
|
||||||
logger.error("retryOriginalRequest: Retry request failed: \(error)")
|
// If it is a string return nil (e.g. express returns OK for 200 status codes)
|
||||||
|
if let responseString = String(data: data, encoding: .utf8) {
|
||||||
|
logger.log("retryOriginalRequest: Got string response '\(responseString)'")
|
||||||
|
callback?(nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// If not a string, try JSON
|
||||||
|
do {
|
||||||
|
let decodedObject = try JSONDecoder().decode(decodable, from: data)
|
||||||
|
callback?(decodedObject)
|
||||||
|
} catch {
|
||||||
|
logger.error("retryOriginalRequest: JSON decode failed: \(error)")
|
||||||
|
callback?(nil)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Empty response
|
||||||
|
logger.log("retryOriginalRequest: Empty response with success status \(statusCode)")
|
||||||
|
callback?(nil)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.error("retryOriginalRequest: Request failed with status \(response.response?.statusCode ?? 0)")
|
||||||
callback?(nil)
|
callback?(nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user