Skip to main content

kellnr_db/
auth_token.rs

1use kellnr_entity::auth_token;
2use serde::{Deserialize, Serialize};
3use utoipa::ToSchema;
4
5use crate::AuthTokenId;
6
7#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize, ToSchema)]
8pub struct AuthToken {
9    pub id: AuthTokenId,
10    pub name: String,
11    #[serde(skip_serializing)]
12    token: String,
13    /// When the token was created, unknown for tokens from before Kellnr
14    /// stored it
15    pub created: Option<String>,
16    /// When the token was last used, updated at most once per hour
17    pub last_used: Option<String>,
18}
19
20impl AuthToken {
21    pub fn new(id: AuthTokenId, name: String, token: String) -> Self {
22        Self {
23            id,
24            name,
25            token,
26            created: None,
27            last_used: None,
28        }
29    }
30}
31
32impl From<auth_token::Model> for AuthToken {
33    fn from(m: auth_token::Model) -> Self {
34        Self {
35            id: AuthTokenId::new(m.id),
36            name: m.name,
37            token: m.token,
38            created: m.created,
39            last_used: m.last_used,
40        }
41    }
42}