Log decoding errors (#630)

This commit is contained in:
Kevin Cramer 2022-12-08 17:05:11 +00:00 committed by GitHub
parent b0ba3b863c
commit a0c1aae065
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 0 deletions

View File

@ -50,6 +50,21 @@ class ViewModel: ObservableObject {
networkError = .HTTPURLError(response: errorResponse, displayMessage: displayMessage)
logger
.error("Request failed: HTTP URL request failed with description: \(errorResponse.localizedDescription)")
case let .error(_, _, _, baseError as DecodingError):
networkError = .JellyfinError(response: errorResponse, displayMessage: displayMessage)
if case let .dataCorrupted(decodeContext) = baseError {
let codingPath = decodeContext.codingPath.map(\.stringValue).joined(separator: ",")
let underlyingError = decodeContext.debugDescription
logger
.error(
"Request failed: JSON Decoding failed: Underlying Error: \(underlyingError) - Coding Path: [\(codingPath)]"
)
} else {
logger
.error("Request failed: JSON Decoding failed!")
}
default:
networkError = .JellyfinError(response: errorResponse, displayMessage: displayMessage)
// Able to use user-facing friendly description here since just HTTP status codes