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

17 lines
585 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::response::api_error::GeoffreyAPIError;
pub fn get_player_from_req<T>(db: &Database, req: &CommandRequest<T>) -> Result<Option<Player>> {
if let Some(user_id) = &req.user {
Ok(db
.filter(|_, player: &Player| player.has_user_id(user_id))
.map_err(|err| GeoffreyAPIError::DatabaseError(err.to_string()))?
.next())
} else {
Ok(None)
}
}