Files
amiibo-service/Sources/AmiiboService/Public/Errors/AmiiboServiceError.swift
T

58 lines
2.1 KiB
Swift

// ===----------------------------------------------------------------------===
//
// This source file is part of the Amiibo Service open source project
//
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
// Licensed under Apache license v2.0
//
// See LICENSE for license information
// See CONTRIBUTORS for the list of Amiibo Service project authors
//
// SPDX-License-Identifier: Apache-2.0
//
// ===----------------------------------------------------------------------===
import Foundation
/// A representation of all the possible errors that the ``AmiiboService`` service could throw.
public enum AmiiboServiceError: Error {
/// The request was malformed or contained invalid filter parameters.
case badRequest
/// The request was cancelled before a response was received.
case cancelled
/// The response body could not be decoded into the expected model.
case decoding
/// The backend service is currently unreachable due to a network or server issue.
case notAvailable
/// No results were found matching the given filter criteria.
case notFound
/// The server returned an undocumented HTTP status code.
case undocumented(_ statusCode: Int)
/// An unexpected error that does not fall into any other category.
case unknown
}
// MARK: - Equatable
extension AmiiboServiceError: Equatable {}
// MARK: - LocalizedError
extension AmiiboServiceError: LocalizedError {
// MARK: Properties
public var errorDescription: String? {
switch self {
case .badRequest: "The request was malformed or contained invalid filter parameters."
case .cancelled: "The request was cancelled before a response was received."
case .decoding: "The response body could not be decoded into the expected model."
case .notAvailable: "The backend service is currently unreachable due to a network or server issue."
case .notFound: "No results were found matching the given filter criteria."
case .undocumented(let statusCode): "The server returned an undocumented HTTP status code: \(statusCode)."
case .unknown: "An unexpected error occurred."
}
}
}