1
0
Fork 0

Move forms into separate files

This commit is contained in:
Alex Kotov 2020-10-16 02:46:46 +05:00
parent 9c023e272a
commit fc75e2c6a3
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
2 changed files with 33 additions and 30 deletions

View File

@ -1,31 +1,3 @@
use validator::{Validate, ValidationError};
mod user;
#[derive(FromForm, Validate)]
pub struct UserSignUp {
#[validate(length(min = 4, max = 128), custom = "validate_username")]
pub username: String,
#[validate(length(min = 8, max = 128), custom = "validate_password")]
pub password: String,
}
fn validate_username(value: &String) -> Result<(), ValidationError> {
let re = regex::Regex::new(r"^[a-z][a-z0-9]*$").unwrap();
if re.is_match(value) {
Ok(())
}
else {
Err(ValidationError::new("has invalid format"))
}
}
fn validate_password(value: &String) -> Result<(), ValidationError> {
let bad_re = regex::Regex::new(r"^\s*$").unwrap();
if bad_re.is_match(value) {
Err(ValidationError::new("is blank"))
}
else {
Ok(())
}
}
pub use self::user::*;

31
src/forms/user.rs Normal file
View File

@ -0,0 +1,31 @@
use validator::{Validate, ValidationError};
#[derive(FromForm, Validate)]
pub struct UserSignUp {
#[validate(length(min = 4, max = 128), custom = "validate_username")]
pub username: String,
#[validate(length(min = 8, max = 128), custom = "validate_password")]
pub password: String,
}
fn validate_username(value: &String) -> Result<(), ValidationError> {
let re = regex::Regex::new(r"^[a-z][a-z0-9]*$").unwrap();
if re.is_match(value) {
Ok(())
}
else {
Err(ValidationError::new("has invalid format"))
}
}
fn validate_password(value: &String) -> Result<(), ValidationError> {
let bad_re = regex::Regex::new(r"^\s*$").unwrap();
if bad_re.is_match(value) {
Err(ValidationError::new("is blank"))
}
else {
Ok(())
}
}