Working user and link list, (big)restructure
This is now a workspace consisting of: * the pslink app (a wasm frontend for the admin interface) * the pslink binary * shared - modules for communication between the two above.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
use std::ops::Deref;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
#[derive(Clone, Deserialize, Serialize, Debug, Default)]
|
||||
pub struct Filter {
|
||||
pub sieve: String,
|
||||
}
|
||||
|
||||
impl Deref for Filter {
|
||||
type Target = String;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
&self.sieve
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize, PartialEq, Eq, Debug)]
|
||||
pub enum Ordering {
|
||||
Ascending,
|
||||
Descending,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize, Debug)]
|
||||
pub struct Operation<T, V> {
|
||||
pub column: T,
|
||||
pub value: V,
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
use enum_map::{Enum, EnumMap};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::general::{Filter, Operation, Ordering};
|
||||
|
||||
/// A generic list returntype containing the User and a Vec containing e.g. Links or Users
|
||||
#[derive(Clone, Deserialize, Serialize, Debug)]
|
||||
pub struct LinkRequestForm {
|
||||
pub filter: EnumMap<LinkOverviewColumns, Filter>,
|
||||
pub order: Option<Operation<LinkOverviewColumns, Ordering>>,
|
||||
pub amount: usize,
|
||||
}
|
||||
|
||||
impl Default for LinkRequestForm {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
filter: EnumMap::default(),
|
||||
order: None,
|
||||
amount: 20,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq, Hash, Enum)]
|
||||
pub enum LinkOverviewColumns {
|
||||
Code,
|
||||
Description,
|
||||
Target,
|
||||
Author,
|
||||
Statistics,
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
pub mod general;
|
||||
pub mod links;
|
||||
pub mod users;
|
||||
@@ -0,0 +1,28 @@
|
||||
use enum_map::{Enum, EnumMap};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::general::{Filter, Operation, Ordering};
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize, Debug)]
|
||||
pub struct UserRequestForm {
|
||||
pub filter: EnumMap<UserOverviewColumns, Filter>,
|
||||
pub order: Option<Operation<UserOverviewColumns, Ordering>>,
|
||||
pub amount: usize,
|
||||
}
|
||||
|
||||
impl Default for UserRequestForm {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
filter: EnumMap::default(),
|
||||
order: None,
|
||||
amount: 20,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, Eq, Hash, Enum)]
|
||||
pub enum UserOverviewColumns {
|
||||
Id,
|
||||
Email,
|
||||
Username,
|
||||
}
|
||||
Reference in New Issue
Block a user