database (user table): move to `types` from `database`
This commit is contained in:
parent
6ae8d6fa9f
commit
b2a4b84f6d
|
@ -607,6 +607,7 @@ name = "homedisk-database"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-util",
|
"futures-util",
|
||||||
|
"homedisk-types",
|
||||||
"log",
|
"log",
|
||||||
"rust_utilities",
|
"rust_utilities",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -639,7 +640,9 @@ dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"axum",
|
"axum",
|
||||||
"dirs",
|
"dirs",
|
||||||
|
"rust_utilities",
|
||||||
"serde",
|
"serde",
|
||||||
|
"sqlx",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"toml",
|
"toml",
|
||||||
"uuid",
|
"uuid",
|
||||||
|
|
|
@ -10,6 +10,7 @@ serde = { version = "1.0.136", features = ["derive"] }
|
||||||
sqlx = { version = "0.5.13", features = ["runtime-tokio-rustls", "sqlite"] }
|
sqlx = { version = "0.5.13", features = ["runtime-tokio-rustls", "sqlite"] }
|
||||||
uuid = { version = "1.0.0", features = ["v5"] }
|
uuid = { version = "1.0.0", features = ["v5"] }
|
||||||
rust_utilities = { version = "0.2.0", features = ["sha"] }
|
rust_utilities = { version = "0.2.0", features = ["sha"] }
|
||||||
|
homedisk-types = { path = "../types", features = ["database"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tokio = { version = "1.17.0", features = ["full"] }
|
tokio = { version = "1.17.0", features = ["full"] }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
mod error;
|
mod error;
|
||||||
mod sqlite;
|
mod sqlite;
|
||||||
mod user;
|
|
||||||
|
|
||||||
pub use {error::*, sqlite::*, user::*};
|
pub use homedisk_types::database::User;
|
||||||
|
pub use {error::*, sqlite::*};
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
use futures_util::TryStreamExt;
|
use futures_util::TryStreamExt;
|
||||||
use log::debug;
|
use log::debug;
|
||||||
use sqlx::{sqlite::SqliteQueryResult, Executor, Row, SqlitePool};
|
use sqlx::{sqlite::SqliteQueryResult, Executor, Row, SqlitePool};
|
||||||
use user::User;
|
|
||||||
|
|
||||||
use super::{user, Error};
|
use super::{Error, User};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Database {
|
pub struct Database {
|
||||||
|
@ -32,7 +31,7 @@ impl Database {
|
||||||
/// let user = User::new("username", "password");
|
/// let user = User::new("username", "password");
|
||||||
/// db.create_user(&user).await?;
|
/// db.create_user(&user).await?;
|
||||||
/// ```
|
/// ```
|
||||||
pub async fn create_user(&self, user: &user::User) -> Result<SqliteQueryResult, Error> {
|
pub async fn create_user(&self, user: &User) -> Result<SqliteQueryResult, Error> {
|
||||||
debug!("creating user - {}", user.username);
|
debug!("creating user - {}", user.username);
|
||||||
|
|
||||||
let query = sqlx::query("INSERT INTO user (id, username, password) VALUES (?, ?, ?)")
|
let query = sqlx::query("INSERT INTO user (id, username, password) VALUES (?, ?, ?)")
|
||||||
|
|
|
@ -5,6 +5,7 @@ edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
config = ["toml", "dirs"]
|
config = ["toml", "dirs"]
|
||||||
|
database = ["rust_utilities", "sqlx"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
thiserror = "1.0.30"
|
thiserror = "1.0.30"
|
||||||
|
@ -17,3 +18,7 @@ axum = { version = "0.5.3", optional = true }
|
||||||
# config
|
# config
|
||||||
toml = { version = "0.5.9", optional = true }
|
toml = { version = "0.5.9", optional = true }
|
||||||
dirs = { version = "4.0.0", optional = true }
|
dirs = { version = "4.0.0", optional = true }
|
||||||
|
|
||||||
|
# database
|
||||||
|
rust_utilities = { version = "0.2.0", optional = true }
|
||||||
|
sqlx = { version = "0.5.13", features = ["sqlite"], optional = true }
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
mod user;
|
||||||
|
|
||||||
|
pub use {user::*};
|
|
@ -1,6 +1,7 @@
|
||||||
use rust_utilities::crypto::sha::{encode, Algorithm, CryptographicHash};
|
use rust_utilities::crypto::sha::{encode, Algorithm, CryptographicHash};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
/// SQL `user` Table
|
||||||
#[derive(Debug, sqlx::FromRow)]
|
#[derive(Debug, sqlx::FromRow)]
|
||||||
pub struct User {
|
pub struct User {
|
||||||
pub id: String,
|
pub id: String,
|
||||||
|
@ -14,7 +15,7 @@ impl User {
|
||||||
/// This function creates a unique UUID for a user and creates a password hash using SHA-512
|
/// This function creates a unique UUID for a user and creates a password hash using SHA-512
|
||||||
/// and returns in the User type
|
/// and returns in the User type
|
||||||
/// ```
|
/// ```
|
||||||
/// use homedisk_database::User;
|
/// use homedisk_types::database::User;
|
||||||
///
|
///
|
||||||
/// let user = User::new("medzik", "SuperSecretPassword123!");
|
/// let user = User::new("medzik", "SuperSecretPassword123!");
|
||||||
/// ```
|
/// ```
|
|
@ -2,3 +2,6 @@ pub mod auth;
|
||||||
pub mod config;
|
pub mod config;
|
||||||
pub mod errors;
|
pub mod errors;
|
||||||
pub mod macros;
|
pub mod macros;
|
||||||
|
|
||||||
|
#[cfg(feature = "database")]
|
||||||
|
pub mod database;
|
||||||
|
|
Loading…
Reference in New Issue