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

28 lines
744 B
Rust

use crate::Result;
use geoffrey_db::database::Database;
use geoffrey_models::models::parameters::{CommandRequest, GeoffreyParam};
use geoffrey_models::models::player::Player;
use geoffrey_models::models::token::Token;
pub fn get_player_from_req<T: GeoffreyParam>(
db: &Database,
req: &CommandRequest<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: GeoffreyParam>(
db: &Database,
req: &CommandRequest<T>,
) -> Result<Option<Token>> {
Ok(db
.filter(|_, token: &Token| token.secret == req.token)?
.next())
}