17 lines
585 B
Rust
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)
|
|
}
|
|
}
|