1#[cfg(feature = "vld")]
4mod schemas {
5 use vld::schema::VldSchema;
6
7 vld::schema! {
8 #[derive(Debug, Clone)]
9 pub struct RegisterForm {
10 pub name: String => vld::string().min(2).max(80),
11 pub email: String => vld::string().email(),
12 pub password: String => vld::string().min(8).max(128),
13 pub password_confirmation: Option<String> => vld::string().min(8).max(128).optional(),
14 pub csrf: Option<String> => vld::string().optional(),
15 }
16 }
17
18 vld::schema! {
19 #[derive(Debug, Clone)]
20 pub struct LoginForm {
21 pub email: String => vld::string().email(),
22 pub password: String => vld::string().min(1),
23 pub csrf: Option<String> => vld::string().optional(),
24 }
25 }
26
27 vld::schema! {
28 #[derive(Debug, Clone)]
29 pub struct ForgotForm {
30 pub email: String => vld::string().email(),
31 pub csrf: Option<String> => vld::string().optional(),
32 }
33 }
34
35 vld::schema! {
36 #[derive(Debug, Clone)]
37 pub struct ResetForm {
38 pub email: String => vld::string().email(),
39 pub token: String => vld::string().min(8),
40 pub password: String => vld::string().min(8).max(128),
41 pub password_confirmation: String => vld::string().min(8).max(128),
42 pub csrf: Option<String> => vld::string().optional(),
43 }
44 }
45
46 vld::schema! {
47 #[derive(Debug, Clone)]
48 pub struct ProfileForm {
49 pub name: String => vld::string().min(2).max(80),
50 pub email: String => vld::string().email(),
51 pub csrf: Option<String> => vld::string().optional(),
52 }
53 }
54
55 vld::schema! {
56 #[derive(Debug, Clone)]
57 pub struct PasswordForm {
58 pub current_password: String => vld::string().min(1),
59 pub password: String => vld::string().min(8).max(128),
60 pub password_confirmation: String => vld::string().min(8).max(128),
61 pub csrf: Option<String> => vld::string().optional(),
62 }
63 }
64
65 vld::schema! {
66 #[derive(Debug, Clone)]
67 pub struct ConfirmPasswordForm {
68 pub password: String => vld::string().min(1),
69 pub csrf: Option<String> => vld::string().optional(),
70 }
71 }
72
73 vld::schema! {
74 #[derive(Debug, Clone)]
75 pub struct TwoFactorCodeForm {
76 pub code: Option<String> => vld::string().optional(),
77 pub recovery_code: Option<String> => vld::string().optional(),
78 pub csrf: Option<String> => vld::string().optional(),
79 }
80 }
81
82 vld::schema! {
83 #[derive(Debug, Clone)]
84 pub struct DisableTwoFactorForm {
85 pub password: Option<String> => vld::string().optional(),
86 pub current_password: Option<String> => vld::string().optional(),
87 pub csrf: Option<String> => vld::string().optional(),
88 }
89 }
90}
91
92#[cfg(feature = "vld")]
93pub use schemas::*;
94
95#[cfg(feature = "vld")]
96sova_vld::doc_schema!(
97 RegisterForm,
98 LoginForm,
99 ForgotForm,
100 ResetForm,
101 ProfileForm,
102 PasswordForm,
103 ConfirmPasswordForm,
104 TwoFactorCodeForm,
105 DisableTwoFactorForm,
106);