Add first routes for accounts management
This commit is contained in:
		@@ -4,7 +4,7 @@ use crate::connections::db_connection::db;
 | 
			
		||||
use crate::constants;
 | 
			
		||||
use crate::models::tokens::{NewToken, Token, TokenID};
 | 
			
		||||
use crate::models::users::UserID;
 | 
			
		||||
use crate::schema::token;
 | 
			
		||||
use crate::schema::tokens;
 | 
			
		||||
use crate::utils::rand_utils::rand_string;
 | 
			
		||||
use crate::utils::time_utils::time;
 | 
			
		||||
 | 
			
		||||
@@ -41,7 +41,7 @@ pub async fn create(new_token: NewTokenInfo) -> anyhow::Result<Token> {
 | 
			
		||||
        right_attachment: new_token.right_attachment,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    let res = diesel::insert_into(token::table)
 | 
			
		||||
    let res = diesel::insert_into(tokens::table)
 | 
			
		||||
        .values(&t)
 | 
			
		||||
        .get_result(&mut db()?)?;
 | 
			
		||||
 | 
			
		||||
@@ -50,36 +50,36 @@ pub async fn create(new_token: NewTokenInfo) -> anyhow::Result<Token> {
 | 
			
		||||
 | 
			
		||||
/// Get a single token by its id
 | 
			
		||||
pub async fn get_by_id(token_id: TokenID) -> anyhow::Result<Token> {
 | 
			
		||||
    Ok(token::table
 | 
			
		||||
        .filter(token::dsl::id.eq(token_id.0))
 | 
			
		||||
    Ok(tokens::table
 | 
			
		||||
        .filter(tokens::dsl::id.eq(token_id.0))
 | 
			
		||||
        .get_result(&mut db()?)?)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get a single token by its name
 | 
			
		||||
pub fn get_by_name(name: &str) -> anyhow::Result<Token> {
 | 
			
		||||
    Ok(token::table
 | 
			
		||||
        .filter(token::dsl::name.eq(name))
 | 
			
		||||
    Ok(tokens::table
 | 
			
		||||
        .filter(tokens::dsl::name.eq(name))
 | 
			
		||||
        .get_result(&mut db()?)?)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get a single token by its value
 | 
			
		||||
pub async fn get_by_value(value: &str) -> anyhow::Result<Token> {
 | 
			
		||||
    Ok(token::table
 | 
			
		||||
        .filter(token::dsl::token_value.eq(value))
 | 
			
		||||
    Ok(tokens::table
 | 
			
		||||
        .filter(tokens::dsl::token_value.eq(value))
 | 
			
		||||
        .get_result(&mut db()?)?)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get the token of a user
 | 
			
		||||
pub async fn get_list_user(id: UserID) -> anyhow::Result<Vec<Token>> {
 | 
			
		||||
    Ok(token::table
 | 
			
		||||
        .filter(token::dsl::user_id.eq(id.0))
 | 
			
		||||
    Ok(tokens::table
 | 
			
		||||
        .filter(tokens::dsl::user_id.eq(id.0))
 | 
			
		||||
        .get_results(&mut db()?)?)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Update last used value of a token
 | 
			
		||||
pub async fn update_time_used(token: &Token) -> anyhow::Result<()> {
 | 
			
		||||
    diesel::update(token::dsl::token.filter(token::dsl::id.eq(token.id().0)))
 | 
			
		||||
        .set(token::dsl::time_used.eq(time() as i64))
 | 
			
		||||
    diesel::update(tokens::dsl::tokens.filter(tokens::dsl::id.eq(token.id().0)))
 | 
			
		||||
        .set(tokens::dsl::time_used.eq(time() as i64))
 | 
			
		||||
        .execute(&mut db()?)?;
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
@@ -87,10 +87,10 @@ pub async fn update_time_used(token: &Token) -> anyhow::Result<()> {
 | 
			
		||||
/// Delete the token of a user
 | 
			
		||||
pub async fn delete(user_id: UserID, token_id: TokenID) -> anyhow::Result<()> {
 | 
			
		||||
    diesel::delete(
 | 
			
		||||
        token::dsl::token.filter(
 | 
			
		||||
            token::dsl::id
 | 
			
		||||
        tokens::dsl::tokens.filter(
 | 
			
		||||
            tokens::dsl::id
 | 
			
		||||
                .eq(token_id.0)
 | 
			
		||||
                .and(token::dsl::user_id.eq(user_id.0)),
 | 
			
		||||
                .and(tokens::dsl::user_id.eq(user_id.0)),
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
    .execute(&mut db()?)?;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user