gamenight/backend-actix/src/request/requests.rs

42 lines
1.1 KiB
Rust

use serde::{Serialize, Deserialize};
use validator::Validate;
use diesel::PgConnection;
use diesel::r2d2::ConnectionManager;
use diesel::r2d2::Pool;
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 Pool<ConnectionManager<PgConnection>>")
)]
pub username: String,
#[validate(
email,
custom(function = "unique_email", arg = "&'v_a Pool<ConnectionManager<PgConnection>>")
)]
#[validate(email)]
pub email: String,
#[validate(length(min = 10), must_match = "password_repeat")]
pub password: String,
pub password_repeat: String,
}
#[derive(Serialize, Deserialize, Clone)]
pub struct GamenightPost {
pub name: String,
pub datetime: String
}
#[derive(Serialize, Deserialize, Clone)]
pub struct GamenightGet {
pub id: String
}