1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-02-18 15:02:41 +00:00
comunicapiv3/src/helpers/user_helper.rs

33 lines
1.0 KiB
Rust
Raw Normal View History

2020-05-23 19:17:48 +02:00
use crate::data::error::ResultBoxError;
2020-05-25 13:25:51 +02:00
use crate::data::user::{User, UserID};
2020-05-23 19:17:48 +02:00
use crate::helpers::database;
use crate::database_structure::USERS_TABLE;
/// User helper
///
/// @author Pierre Hubert
2020-05-25 13:25:51 +02:00
/// Get & return information about a user based on its ID
pub fn find_user_by_id(id: UserID) -> ResultBoxError<User> {
exec_get_user_query(
database::QueryInfo::new(USERS_TABLE).cond_i64("ID", id))
}
2020-05-23 19:17:48 +02:00
/// Get & return information about a user based on his email
pub fn find_user_by_email(email: &str) -> ResultBoxError<User> {
exec_get_user_query(
database::QueryInfo::new(USERS_TABLE).cond("mail", email))
}
/// Execute query & return result
2020-05-25 13:25:51 +02:00
fn exec_get_user_query(query: database::QueryInfo) -> ResultBoxError<User> {
database::query_row(query, |res| {
2020-05-23 19:17:48 +02:00
Ok(User {
id: res.get_int64("ID")?,
email: res.get_str("mail")?,
password: res.get_str("password")?,
first_name: res.get_str("prenom")?,
2020-05-25 13:25:51 +02:00
last_name: res.get_str("nom")?,
2020-05-23 19:17:48 +02:00
})
})
}