ddstats/src/api/races.rs

30 lines
784 B
Rust

use rocket::{serde::json::Json, Route, State};
use crate::database::{models::race::Race, DatabaseHandler};
#[get("/player/<player>")]
async fn get_races_by_player(
db: &State<DatabaseHandler>,
player: &str,
) -> Result<Json<Vec<Race>>, String> {
match Race::get_races_by_player(db, player).await {
Ok(maps) => Ok(Json(maps)),
Err(err) => Err(format!("Error: {}", err)),
}
}
#[get("/map/<map>")]
async fn get_races_by_map(
db: &State<DatabaseHandler>,
map: &str,
) -> Result<Json<Vec<Race>>, String> {
match Race::get_races_by_map(db, map).await {
Ok(maps) => Ok(Json(maps)),
Err(err) => Err(format!("Error: {}", err)),
}
}
pub fn get_all_routes() -> Vec<Route> {
routes![get_races_by_player, get_races_by_map]
}