initial create user

This commit is contained in:
2021-08-12 15:48:02 +02:00
committed by dietrich
parent b9866a8c19
commit 6837495eba
16 changed files with 650 additions and 288 deletions
+17
View File
@@ -25,3 +25,20 @@ pub struct Operation<T, V> {
pub column: T,
pub value: V,
}
#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq)]
pub enum EditMode {
Create,
Edit,
}
impl Default for EditMode {
fn default() -> Self {
Self::Create
}
}
#[derive(Clone, Deserialize, Serialize, Debug)]
pub struct SuccessMessage {
pub message: String,
}
+31 -1
View File
@@ -1,12 +1,17 @@
use enum_map::{Enum, EnumMap};
use serde::{Deserialize, Serialize};
use super::general::{Filter, Operation, Ordering};
use crate::datatypes::User;
use super::general::{EditMode, Filter, Operation, Ordering};
#[derive(Clone, Deserialize, Serialize, Debug)]
pub struct UserRequestForm {
// The filters up to one for each column
pub filter: EnumMap<UserOverviewColumns, Filter>,
// Order According to this column
pub order: Option<Operation<UserOverviewColumns, Ordering>>,
// Return a maximum of `amount` results
pub amount: usize,
}
@@ -20,6 +25,31 @@ impl Default for UserRequestForm {
}
}
/// The Struct that is responsible for creating and editing users.
#[derive(Default, Debug, Clone, Serialize, Deserialize)]
pub struct UserDelta {
pub edit: EditMode,
pub id: Option<i64>,
pub username: String,
pub email: String,
pub password: Option<String>,
}
impl From<User> for UserDelta {
/// Automatically create a `UserDelta` from a User.
fn from(u: User) -> Self {
Self {
edit: EditMode::Edit,
id: Some(u.id),
username: u.username,
email: u.email,
password: None,
}
}
}
/// The columns in the user view table. The table can be ordered according to these.
#[allow(clippy::use_self)]
#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq, Hash, Enum)]
pub enum UserOverviewColumns {
Id,