jellyflood/Shared/Errors/NetworkError.swift

117 lines
4.1 KiB
Swift

//
// Swiftfin is subject to the terms of the Mozilla Public
// License, v2.0. If a copy of the MPL was not distributed with this
// file, you can obtain one at https://mozilla.org/MPL/2.0/.
//
// Copyright (c) 2024 Jellyfin & Jellyfin Contributors
//
import Foundation
import JellyfinAPI
// This is only kept as reference until more strongly-typed errors are implemented.
// enum NetworkError: Error {
//
// /// For the case that the ErrorResponse object has a code of -1
// case URLError(response: ErrorResponse, displayMessage: String?)
//
// /// For the case that the ErrorRespones object has a code of -2
// case HTTPURLError(response: ErrorResponse, displayMessage: String?)
//
// /// For the case that the ErrorResponse object has a positive code
// case JellyfinError(response: ErrorResponse, displayMessage: String?)
//
// var errorMessage: ErrorMessage {
// switch self {
// case let .URLError(response, displayMessage):
// return NetworkError.parseURLError(from: response, displayMessage: displayMessage)
// case let .HTTPURLError(response, displayMessage):
// return NetworkError.parseHTTPURLError(from: response, displayMessage: displayMessage)
// case let .JellyfinError(response, displayMessage):
// return NetworkError.parseJellyfinError(from: response, displayMessage: displayMessage)
// }
// }
//
// private static func parseURLError(from response: ErrorResponse, displayMessage: String?) -> ErrorMessage {
// let errorMessage: ErrorMessage
//
// switch response {
// case let .error(_, _, _, err):
//
// // Code references:
// // https://developer.apple.com/documentation/foundation/1508628-url_loading_system_error_codes
// switch err._code {
// case -1001:
// errorMessage = ErrorMessage(
// code: err._code,
// title: L10n.error,
// message: L10n.networkTimedOut
// )
// case -1003:
// errorMessage = ErrorMessage(
// code: err._code,
// title: L10n.error,
// message: L10n.unableToFindHost
// )
// case -1004:
// errorMessage = ErrorMessage(
// code: err._code,
// title: L10n.error,
// message: L10n.cannotConnectToHost
// )
// default:
// errorMessage = ErrorMessage(
// code: err._code,
// title: L10n.error,
// message: L10n.unknownError
// )
// }
// }
//
// return errorMessage
// }
//
// private static func parseHTTPURLError(from response: ErrorResponse, displayMessage: String?) -> ErrorMessage {
// let errorMessage: ErrorMessage
//
// // Not implemented as has not run into one of these errors as time of writing
// switch response {
// case .error:
// errorMessage = ErrorMessage(
// code: 0,
// title: L10n.error,
// message: "An HTTP URL error has occurred"
// )
// }
//
// return errorMessage
// }
//
// private static func parseJellyfinError(from response: ErrorResponse, displayMessage: String?) -> ErrorMessage {
// let errorMessage: ErrorMessage
//
// switch response {
// case let .error(code, _, _, _):
//
// // Generic HTTP status codes
// switch code {
// case 401:
// errorMessage = ErrorMessage(
// code: code,
// title: L10n.unauthorized,
// message: L10n.unauthorizedUser
// )
// default:
// errorMessage = ErrorMessage(
// code: code,
// title: L10n.error,
// message: displayMessage ?? L10n.unknownError
// )
// }
// }
//
// return errorMessage
// }
// }