|
import Foundation
|
|
|
|
public struct AuthToken: Hashable, Sendable {
|
|
public let id: Int
|
|
public let key: String
|
|
public let expireTime: Date
|
|
public let userId: Int
|
|
|
|
public init(id: Int, key: String, expireTime: Date, userId: Int) {
|
|
self.id = id
|
|
self.key = key
|
|
self.expireTime = expireTime
|
|
self.userId = userId
|
|
}
|
|
|
|
public var isExpired: Bool {
|
|
expireTime < Date()
|
|
}
|
|
}
|
|
|
|
public extension AuthToken {
|
|
public struct CodingData: Codable {
|
|
public struct Container: Codable {
|
|
let auth_token: AuthToken.CodingData
|
|
}
|
|
|
|
public let id: Int
|
|
public let key: String
|
|
public let expire_time: Int
|
|
public let user_id: Int
|
|
}
|
|
}
|
|
|
|
public extension AuthToken.CodingData {
|
|
public var decoded: AuthToken {
|
|
.init(
|
|
id: id,
|
|
key: key,
|
|
expireTime: Date(timeIntervalSince1970: TimeInterval(expire_time)),
|
|
userId: user_id
|
|
)
|
|
}
|
|
}
|
|
|
|
public extension AuthToken {
|
|
public var encoded: AuthToken.CodingData {
|
|
.init(
|
|
id: id,
|
|
key: key,
|
|
expire_time: Int(expireTime.timeIntervalSince1970),
|
|
user_id: userId
|
|
)
|
|
}
|
|
}
|