diff options
Diffstat (limited to 'src/database/users.rs')
-rw-r--r-- | src/database/users.rs | 94 |
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 +} |