36 lines
901 B
Swift
36 lines
901 B
Swift
import Foundation
|
|
|
|
struct FahipaySession: Codable {
|
|
let authId: String
|
|
let sessionCookie: String
|
|
}
|
|
|
|
struct FahipayLoginStep {
|
|
let twoFactorRequired: Bool
|
|
let authId: String?
|
|
}
|
|
|
|
struct FahipayContactGroup: Codable, Identifiable {
|
|
let id: String
|
|
let name: String
|
|
let contacts: [BankContact]
|
|
}
|
|
|
|
enum FahipayError: LocalizedError {
|
|
case networkError(String)
|
|
case loginFailed(String)
|
|
case otpFailed(String)
|
|
case sessionExpired
|
|
case invalidResponse
|
|
|
|
var errorDescription: String? {
|
|
switch self {
|
|
case .networkError(let msg): return "Network error: \(msg)"
|
|
case .loginFailed(let msg): return "Login failed: \(msg)"
|
|
case .otpFailed(let msg): return "OTP verification failed: \(msg)"
|
|
case .sessionExpired: return "Session expired."
|
|
case .invalidResponse: return "Unexpected server response."
|
|
}
|
|
}
|
|
}
|