Geoffrey-rs/geoffrey_api/src/helper/mod.rs

22 lines
679 B
Rust

use crate::Result;
use geoffrey_db::database::Database;
use geoffrey_models::models::parameters::CommandRequest;
use geoffrey_models::models::player::Player;
use geoffrey_models::models::token::Token;
pub fn get_player_from_req<T: CommandRequest>(db: &Database, req: &T) -> Result<Option<Player>> {
if let Some(user_id) = req.user_id() {
Ok(db
.filter(|_, player: &Player| player.has_user_id(&user_id))?
.next())
} else {
Ok(None)
}
}
pub fn get_token_from_req<T: CommandRequest>(db: &Database, req: &T) -> Result<Option<Token>> {
Ok(db
.filter(|_, token: &Token| token.secret == req.token())?
.next())
}