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(db: &Database, req: &CommandRequest) -> Result> { 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) } }