36 lines
883 B
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))"
|
|
}
|
|
}
|