AutoCat2/Shared/Utils/ApiError.swift

36 lines
883 B
Swift

import Foundation
public enum ApiErrorCode: Int, CustomStringConvertible, Codable {
case invalidLoginOrPassword = 0
public var description: String {
switch self {
case .invalidLoginOrPassword: return "Invalid login or password"
}
}
}
public class ApiError: LocalizedError {
public let httpStatus: Int
public let message: String?
public let code: ApiErrorCode?
init(httpStatus: Int, message: String? = nil, code: ApiErrorCode? = nil) {
self.httpStatus = httpStatus
self.message = message
self.code = code
}
public var errorDescription: String? {
if let code = code {
return code.description
}
if let message = message {
return message
}
return "General http error (status \(self.httpStatus))"
}
}