Skip to main content

alibi_sqlx/store/entities/
device_code.rs

1use chrono::{DateTime, Utc};
2
3#[derive(Clone, Debug, PartialEq, Eq, sqlx::FromRow, crate::SqlxModel)]
4#[auth(table = "device_code")]
5pub struct Model {
6    pub id: String,
7    pub device_code: String,
8    pub user_code: String,
9    pub user_id: Option<String>,
10    pub expires_at: DateTime<Utc>,
11    pub status: String,
12    pub last_polled_at: Option<DateTime<Utc>>,
13    pub polling_interval: Option<i64>,
14    pub client_id: Option<String>,
15    pub scope: Option<String>,
16}
17
18impl From<&Model> for alibi_core::DeviceCode {
19    fn from(model: &Model) -> Self {
20        Self {
21            id: model.id.clone(),
22            device_code: model.device_code.clone(),
23            user_code: model.user_code.clone(),
24            user_id: model.user_id.clone(),
25            expires_at: model.expires_at,
26            status: model.status.clone(),
27            last_polled_at: model.last_polled_at,
28            polling_interval: model.polling_interval,
29            client_id: model.client_id.clone(),
30            scope: model.scope.clone(),
31        }
32    }
33}