initial create user
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user