mas_data_model/personal/
mod.rs1pub mod session;
7
8use chrono::{DateTime, Utc};
9use ulid::Ulid;
10
11#[derive(Debug, Clone, PartialEq, Eq)]
12pub struct PersonalAccessToken {
13 pub id: Ulid,
14 pub session_id: Ulid,
15 pub created_at: DateTime<Utc>,
16 pub expires_at: Option<DateTime<Utc>>,
17 pub revoked_at: Option<DateTime<Utc>>,
18}
19
20impl PersonalAccessToken {
21 #[must_use]
22 pub fn is_valid(&self, now: DateTime<Utc>) -> bool {
23 if self.revoked_at.is_some() {
24 return false;
25 }
26 if let Some(expires_at) = self.expires_at {
27 expires_at > now
28 } else {
29 true
30 }
31 }
32}