create reminder route. formatting on frontend
This commit is contained in:
47
web/src/macros.rs
Normal file
47
web/src/macros.rs
Normal file
@ -0,0 +1,47 @@
|
||||
macro_rules! check_length {
|
||||
($max:ident, $field:expr) => {
|
||||
if $field.len() > $max {
|
||||
return json!({ "error": format!("{} exceeded", stringify!($max)) });
|
||||
}
|
||||
};
|
||||
($max:ident, $field:expr, $($fields:expr),+) => {
|
||||
check_length!($max, $field);
|
||||
check_length!($max, $($fields),+);
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! check_length_opt {
|
||||
($max:ident, $field:expr) => {
|
||||
if let Some(field) = &$field {
|
||||
check_length!($max, field);
|
||||
}
|
||||
};
|
||||
($max:ident, $field:expr, $($fields:expr),+) => {
|
||||
check_length_opt!($max, $field);
|
||||
check_length_opt!($max, $($fields),+);
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! check_url {
|
||||
($field:expr) => {
|
||||
if $field.starts_with("http://") || $field.starts_with("https://") {
|
||||
return json!({ "error": "URL invalid" });
|
||||
}
|
||||
};
|
||||
($field:expr, $($fields:expr),+) => {
|
||||
check_url!($max, $field);
|
||||
check_url!($max, $($fields),+);
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! check_url_opt {
|
||||
($field:expr) => {
|
||||
if let Some(field) = &$field {
|
||||
check_url!(field);
|
||||
}
|
||||
};
|
||||
($field:expr, $($fields:expr),+) => {
|
||||
check_url_opt!($field);
|
||||
check_url_opt!($($fields),+);
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user