database (user table): move to `types` from `database`

This commit is contained in:
MedzikUser 2022-04-24 14:50:25 +02:00
parent 6ae8d6fa9f
commit b2a4b84f6d
No known key found for this signature in database
GPG Key ID: A5FAC1E185C112DB
8 changed files with 21 additions and 6 deletions

3
Cargo.lock generated
View File

@ -607,6 +607,7 @@ name = "homedisk-database"
version = "0.0.0"
dependencies = [
"futures-util",
"homedisk-types",
"log",
"rust_utilities",
"serde",
@ -639,7 +640,9 @@ dependencies = [
"anyhow",
"axum",
"dirs",
"rust_utilities",
"serde",
"sqlx",
"thiserror",
"toml",
"uuid",

View File

@ -10,6 +10,7 @@ serde = { version = "1.0.136", features = ["derive"] }
sqlx = { version = "0.5.13", features = ["runtime-tokio-rustls", "sqlite"] }
uuid = { version = "1.0.0", features = ["v5"] }
rust_utilities = { version = "0.2.0", features = ["sha"] }
homedisk-types = { path = "../types", features = ["database"] }
[dev-dependencies]
tokio = { version = "1.17.0", features = ["full"] }

View File

@ -1,5 +1,5 @@
mod error;
mod sqlite;
mod user;
pub use {error::*, sqlite::*, user::*};
pub use homedisk_types::database::User;
pub use {error::*, sqlite::*};

View File

@ -1,9 +1,8 @@
use futures_util::TryStreamExt;
use log::debug;
use sqlx::{sqlite::SqliteQueryResult, Executor, Row, SqlitePool};
use user::User;
use super::{user, Error};
use super::{Error, User};
#[derive(Debug, Clone)]
pub struct Database {
@ -32,7 +31,7 @@ impl Database {
/// let user = User::new("username", "password");
/// 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);
let query = sqlx::query("INSERT INTO user (id, username, password) VALUES (?, ?, ?)")

View File

@ -5,6 +5,7 @@ edition = "2021"
[features]
config = ["toml", "dirs"]
database = ["rust_utilities", "sqlx"]
[dependencies]
thiserror = "1.0.30"
@ -17,3 +18,7 @@ axum = { version = "0.5.3", optional = true }
# config
toml = { version = "0.5.9", 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 }

View File

@ -0,0 +1,3 @@
mod user;
pub use {user::*};

View File

@ -1,6 +1,7 @@
use rust_utilities::crypto::sha::{encode, Algorithm, CryptographicHash};
use uuid::Uuid;
/// SQL `user` Table
#[derive(Debug, sqlx::FromRow)]
pub struct User {
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
/// and returns in the User type
/// ```
/// use homedisk_database::User;
/// use homedisk_types::database::User;
///
/// let user = User::new("medzik", "SuperSecretPassword123!");
/// ```

View File

@ -2,3 +2,6 @@ pub mod auth;
pub mod config;
pub mod errors;
pub mod macros;
#[cfg(feature = "database")]
pub mod database;