mirror of
https://github.com/sudoxnym/audiobookshelf-atv.git
synced 2026-04-14 11:36:27 +00:00
iOS update retry request handler to handle string bodies
This commit is contained in:
parent
4534ffaead
commit
be08efeca3
2 changed files with 28 additions and 7 deletions
|
|
@ -102,7 +102,7 @@ public class AbsDatabase: CAPPlugin, CAPBridgedPlugin {
|
|||
let id = call.getString("serverConnectionConfigId", "")
|
||||
|
||||
// Remove refresh token if it exists
|
||||
secureStorage.removeRefreshToken(serverConnectionConfigId: id)
|
||||
_ = secureStorage.removeRefreshToken(serverConnectionConfigId: id)
|
||||
|
||||
Database.shared.deleteServerConnectionConfig(id: id)
|
||||
call.resolve()
|
||||
|
|
|
|||
|
|
@ -275,12 +275,33 @@ class ApiClient {
|
|||
return
|
||||
}
|
||||
|
||||
retryRequest.responseDecodable(of: decodable) { response in
|
||||
switch response.result {
|
||||
case .success(let obj):
|
||||
callback?(obj)
|
||||
case .failure(let error):
|
||||
logger.error("retryOriginalRequest: Retry request failed: \(error)")
|
||||
// Handle the response
|
||||
retryRequest.response { response in
|
||||
if let statusCode = response.response?.statusCode, (200...299).contains(statusCode) {
|
||||
// Check if response has data
|
||||
if let data = response.data, !data.isEmpty {
|
||||
// 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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue