28 lines
760 B
Rust
28 lines
760 B
Rust
use serde::{Serialize, Deserialize};
|
|
use validator::Validate;
|
|
|
|
use crate::schema::user::{unique_email, unique_username};
|
|
|
|
#[derive(Serialize, Deserialize, Clone)]
|
|
pub struct Login {
|
|
pub username: String,
|
|
pub password: String
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Validate)]
|
|
pub struct Register {
|
|
#[validate(
|
|
length(min = 1),
|
|
custom(function = "unique_username", arg = "&'v_a mut diesel::PgConnection")
|
|
)]
|
|
pub username: String,
|
|
#[validate(
|
|
email,
|
|
custom(function = "unique_email", arg = "&'v_a mut diesel::PgConnection")
|
|
)]
|
|
#[validate(email)]
|
|
pub email: String,
|
|
#[validate(length(min = 10), must_match = "password_repeat")]
|
|
pub password: String,
|
|
pub password_repeat: String,
|
|
} |