Completely restructured codebase

This commit is contained in:
Jef Roosens 2021-08-22 16:24:59 +02:00
parent b45c93cdc9
commit b13b760e2f
Signed by: Jef Roosens
GPG key ID: 955C0660072F691F
16 changed files with 67 additions and 60 deletions

2
src/db/mod.rs Normal file
View file

@ -0,0 +1,2 @@
pub mod users;
pub mod tokens;

20
src/db/tokens.rs Normal file
View file

@ -0,0 +1,20 @@
use uuid::Uuid;
use diesel::{Queryable, Insertable};
use crate::schema::refresh_tokens;
#[derive(Queryable)]
pub struct RefreshToken {
pub token: Vec<u8>,
pub user_id: Uuid,
pub expires_at: chrono::NaiveDateTime,
pub last_used_at: Option<chrono::NaiveDateTime>,
}
#[derive(Insertable)]
#[table_name = "refresh_tokens"]
pub struct NewRefreshToken {
pub token: Vec<u8>,
pub user_id: Uuid,
pub expires_at: chrono::NaiveDateTime,
}

29
src/db/users.rs Normal file
View file

@ -0,0 +1,29 @@
use crate::schema::users;
use diesel::{AsChangeset, Insertable, Queryable, prelude::*};
use serde::Serialize;
use uuid::Uuid;
use crate::schema::users::dsl::*;
use crate::errors::RBError;
#[derive(Queryable, Serialize)]
pub struct User {
pub id: Uuid,
pub username: String,
#[serde(skip_serializing)]
pub password: String,
#[serde(skip_serializing)]
pub blocked: bool,
pub admin: bool,
}
#[derive(Insertable, AsChangeset)]
#[table_name = "users"]
pub struct NewUser {
pub username: String,
pub password: String,
pub admin: bool,
}
pub fn all(conn: &PgConnection) -> crate::Result<Vec<User>> {
users.load::<User>(conn).map_err(|_| RBError::DBError)
}