summaryrefslogtreecommitdiff
path: root/src/database/users.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/users.rs')
-rw-r--r--src/database/users.rs94
1 files changed, 70 insertions, 24 deletions
diff --git a/src/database/users.rs b/src/database/users.rs
index a578e69..05a3a57 100644
--- a/src/database/users.rs
+++ b/src/database/users.rs
@@ -1,8 +1,8 @@
-use std::time::{SystemTime, UNIX_EPOCH, Duration};
use rusqlite::{OptionalExtension, Row};
+use std::time::{Duration, SystemTime, UNIX_EPOCH};
use tracing::instrument;
-use crate::{database, types::user::User, api::auth::RegistrationRequet};
+use crate::{api::auth::RegistrationRequet, database, types::user::User};
pub fn init() -> Result<(), rusqlite::Error> {
let sql = "
@@ -36,9 +36,24 @@ fn user_from_row(row: &Row, hide_password: bool) -> Result<User, rusqlite::Error
let month = row.get(8)?;
let year = row.get(9)?;
- let password = if hide_password { String::new() } else { password };
+ let password = if hide_password {
+ String::new()
+ } else {
+ password
+ };
- Ok(User{user_id, firstname, lastname, email, password, gender,date, day, month, year})
+ Ok(User {
+ user_id,
+ firstname,
+ lastname,
+ email,
+ password,
+ gender,
+ date,
+ day,
+ month,
+ year,
+ })
}
#[instrument()]
@@ -46,34 +61,46 @@ pub fn get_user_by_id(user_id: u64, hide_password: bool) -> Result<Option<User>,
tracing::trace!("Retrieving user by id");
let conn = database::connect()?;
let mut stmt = conn.prepare("SELECT * FROM users WHERE user_id = ?")?;
- let row = stmt.query_row([user_id], |row| {
- let row = user_from_row(row, hide_password)?;
- Ok(row)
- }).optional()?;
+ let row = stmt
+ .query_row([user_id], |row| {
+ let row = user_from_row(row, hide_password)?;
+ Ok(row)
+ })
+ .optional()?;
Ok(row)
}
#[instrument()]
-pub fn get_user_by_email(email: &str, hide_password: bool) -> Result<Option<User>, rusqlite::Error> {
+pub fn get_user_by_email(
+ email: &str,
+ hide_password: bool,
+) -> Result<Option<User>, rusqlite::Error> {
tracing::trace!("Retrieving user by email");
let conn = database::connect()?;
let mut stmt = conn.prepare("SELECT * FROM users WHERE email = ?")?;
- let row = stmt.query_row([email], |row| {
- let row = user_from_row(row, hide_password)?;
- Ok(row)
- }).optional()?;
+ let row = stmt
+ .query_row([email], |row| {
+ let row = user_from_row(row, hide_password)?;
+ Ok(row)
+ })
+ .optional()?;
Ok(row)
}
#[instrument()]
-pub fn get_user_by_password(password: &str, hide_password: bool) -> Result<Option<User>, rusqlite::Error> {
+pub fn get_user_by_password(
+ password: &str,
+ hide_password: bool,
+) -> Result<Option<User>, rusqlite::Error> {
tracing::trace!("Retrieving user by password");
let conn = database::connect()?;
let mut stmt = conn.prepare("SELECT * FROM users WHERE password = ?")?;
- let row = stmt.query_row([password], |row| {
- let row = user_from_row(row, hide_password)?;
- Ok(row)
- }).optional()?;
+ let row = stmt
+ .query_row([password], |row| {
+ let row = user_from_row(row, hide_password)?;
+ Ok(row)
+ })
+ .optional()?;
Ok(row)
}
@@ -93,13 +120,32 @@ pub fn get_user_page(page: u64, hide_password: bool) -> Result<Vec<User>, rusqli
#[instrument()]
pub fn add_user(request: RegistrationRequet) -> Result<User, rusqlite::Error> {
tracing::trace!("Adding new user");
- let date = u64::try_from(SystemTime::now().duration_since(UNIX_EPOCH).unwrap_or(Duration::ZERO).as_millis()).unwrap_or(0);
+ let date = u64::try_from(
+ SystemTime::now()
+ .duration_since(UNIX_EPOCH)
+ .unwrap_or(Duration::ZERO)
+ .as_millis(),
+ )
+ .unwrap_or(0);
let conn = database::connect()?;
let mut stmt = conn.prepare("INSERT INTO users (firstname, lastname, email, password, gender, date, day, month, year) VALUES(?,?,?,?,?,?,?,?,?) RETURNING *;")?;
- let user = stmt.query_row((request.firstname, request.lastname, request.email, request.password, request.gender, date, request.day, request.month, request.year), |row| {
- let row = user_from_row(row, false)?;
- Ok(row)
- })?;
+ let user = stmt.query_row(
+ (
+ request.firstname,
+ request.lastname,
+ request.email,
+ request.password,
+ request.gender,
+ date,
+ request.day,
+ request.month,
+ request.year,
+ ),
+ |row| {
+ let row = user_from_row(row, false)?;
+ Ok(row)
+ },
+ )?;
Ok(user)
-} \ No newline at end of file
+}