robespierre_models/
auth.rs1use serde::{Deserialize, Serialize};
2
3use crate::id::{SessionId, UserId};
4
5#[derive(Serialize, Deserialize, Debug, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)]
10#[serde(transparent)]
11pub struct Token(pub String);
12
13#[derive(Serialize, Deserialize, Debug, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)]
14#[serde(transparent)]
15pub struct WebPushSubscription(pub String);
16
17#[derive(Serialize, Deserialize, Debug, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)]
23#[serde(deny_unknown_fields)]
24pub struct Account {
25 #[serde(rename = "_id")]
26 pub id: UserId,
27 pub email: String,
28}
29
30#[derive(Serialize, Deserialize, Debug, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)]
32#[serde(deny_unknown_fields)]
33pub struct Session {
34 #[serde(rename = "_id", default, skip_serializing_if = "Option::is_none")]
35 pub id: Option<SessionId>,
36 pub user_id: UserId,
37 pub token: Token,
38 #[serde(rename = "name")]
39 pub device_name: String,
40 #[serde(
41 rename = "subscription",
42 default,
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub subscription: Option<WebPushSubscription>,
46}
47
48#[derive(Serialize, Deserialize, Debug, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)]
50#[serde(deny_unknown_fields)]
51pub struct SessionInfo {
52 #[serde(rename = "_id")]
53 id: SessionId,
54 #[serde(rename = "name")]
55 device_name: String,
56}