41 lines
915 B
Swift
41 lines
915 B
Swift
import Foundation
|
|
|
|
public enum ApiError: LocalizedError, Equatable {
|
|
|
|
case generic
|
|
case message(String)
|
|
case httpError(Int)
|
|
case invalidLoginOrPassword
|
|
|
|
public var errorDescription: String? {
|
|
switch self {
|
|
case .generic:
|
|
return "Something bad happened"
|
|
case .message(let message):
|
|
return message
|
|
case .httpError(let status):
|
|
return "General http error (status \(status))"
|
|
case .invalidLoginOrPassword:
|
|
return "Invalid login or password"
|
|
}
|
|
}
|
|
|
|
init(code: Int) {
|
|
switch code {
|
|
case 0:
|
|
self = .invalidLoginOrPassword
|
|
default:
|
|
self = .generic
|
|
}
|
|
}
|
|
|
|
public func code() -> Int? {
|
|
switch self {
|
|
case .invalidLoginOrPassword:
|
|
return 0
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
}
|