Skip to content
Clone

refactor(user): remove emails types (inlined)

zhenyi committed
parent 80f2fb9 commit 68977d1 Browse files

1 file changed

+0 −105

Deleted lib/user/features/emails/types.rs
@@ -1,105 +0,0 @@
1use serde::{Deserialize, Serialize};
2use time::format_description::well_known::Rfc3339;
3use utoipa::ToSchema;
4use uuid::Uuid;
5
6#[derive(Debug, Clone, Copy, Serialize, Deserialize, ToSchema)]
7#[serde(rename_all = "snake_case")]
8pub enum EmailChangeTicketStatus {
9 Pending,
10 Verified,
11 Completed,
12 Cancelled,
13}
14
15impl From<db::user::user_email_change_tickets::EmailChangeTicketStatus> for EmailChangeTicketStatus {
16 fn from(s: db::user::user_email_change_tickets::EmailChangeTicketStatus) -> Self {
17 use db::user::user_email_change_tickets::EmailChangeTicketStatus as Db;
18 match s {
19 Db::Pending => EmailChangeTicketStatus::Pending,
20 Db::Verified => EmailChangeTicketStatus::Verified,
21 Db::Completed => EmailChangeTicketStatus::Completed,
22 Db::Cancelled => EmailChangeTicketStatus::Cancelled,
23 }
24 }
25}
26
27impl From<EmailChangeTicketStatus> for db::user::user_email_change_tickets::EmailChangeTicketStatus {
28 fn from(s: EmailChangeTicketStatus) -> Self {
29 use db::user::user_email_change_tickets::EmailChangeTicketStatus as Db;
30 match s {
31 EmailChangeTicketStatus::Pending => Db::Pending,
32 EmailChangeTicketStatus::Verified => Db::Verified,
33 EmailChangeTicketStatus::Completed => Db::Completed,
34 EmailChangeTicketStatus::Cancelled => Db::Cancelled,
35 }
36 }
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
40pub struct EmailView {
41 pub id: Uuid,
42 pub email: String,
43 pub is_activated: bool,
44 pub is_primary: bool,
45 pub activated_at: Option<String>,
46 pub created_at: String,
47 pub updated_at: String,
48}
49
50impl From<db::user::user_emails::Model> for EmailView {
51 fn from(m: db::user::user_emails::Model) -> Self {
52 Self {
53 id: m.id,
54 email: m.email,
55 is_activated: m.is_activated,
56 is_primary: m.is_primary,
57 activated_at: m.activated_at.map(|t| t.format(&Rfc3339).unwrap_or_default()),
58 created_at: m.created_at.format(&Rfc3339).unwrap_or_default(),
59 updated_at: m.updated_at.format(&Rfc3339).unwrap_or_default(),
60 }
61 }
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
65pub struct AddEmailCmd {
66 pub email: String,
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
70pub struct AddEmailResp {
71 pub email_id: Uuid,
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
75pub struct SetPrimaryEmailResp {
76 pub email: EmailView,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
80pub struct EmailChangeTicketView {
81 pub id: Uuid,
82 pub new_email: String,
83 pub status: EmailChangeTicketStatus,
84 pub expires_at: String,
85 pub created_at: String,
86 pub used_at: Option<String>,
87}
88
89impl From<db::user::user_email_change_tickets::Model> for EmailChangeTicketView {
90 fn from(m: db::user::user_email_change_tickets::Model) -> Self {
91 Self {
92 id: m.id,
93 new_email: m.new_email,
94 status: m.status.into(),
95 expires_at: m.expires_at.format(&Rfc3339).unwrap_or_default(),
96 created_at: m.created_at.format(&Rfc3339).unwrap_or_default(),
97 used_at: m.used_at.map(|t| t.format(&Rfc3339).unwrap_or_default()),
98 }
99 }
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
103pub struct ConfirmEmailChangeCmd {
104 pub ticket_id: Uuid,
105}
No newline at end of file