38 lines
1.0 KiB
Rust
38 lines
1.0 KiB
Rust
use rocket::{serde::json::Json, Route, State};
|
|
|
|
use crate::database::{models::map::Map, DatabaseHandler};
|
|
|
|
#[get("/")]
|
|
async fn get_all_maps(db: &State<DatabaseHandler>) -> Result<Json<Vec<Map>>, String> {
|
|
match Map::get_all_maps(db).await {
|
|
Ok(maps) => Ok(Json(maps)),
|
|
Err(err) => Err(format!("Error: {}", err)),
|
|
}
|
|
}
|
|
|
|
#[get("/category/<category>")]
|
|
async fn get_maps_by_category(
|
|
db: &State<DatabaseHandler>,
|
|
category: &str,
|
|
) -> Result<Json<Vec<Map>>, String> {
|
|
match Map::get_maps_by_category(db, category).await {
|
|
Ok(maps) => Ok(Json(maps)),
|
|
Err(err) => Err(format!("Error: {}", err)),
|
|
}
|
|
}
|
|
|
|
#[get("/mapper/<mapper>")]
|
|
async fn get_maps_by_mapper(
|
|
db: &State<DatabaseHandler>,
|
|
mapper: &str,
|
|
) -> Result<Json<Vec<Map>>, String> {
|
|
match Map::get_maps_by_mapper(db, mapper).await {
|
|
Ok(maps) => Ok(Json(maps)),
|
|
Err(err) => Err(format!("Error: {}", err)),
|
|
}
|
|
}
|
|
|
|
pub fn get_all_routes() -> Vec<Route> {
|
|
routes![get_all_maps, get_maps_by_category, get_maps_by_mapper]
|
|
}
|