diff --git a/src/api/maps.rs b/src/api/maps.rs index cbf1357..aa461a3 100644 --- a/src/api/maps.rs +++ b/src/api/maps.rs @@ -10,6 +10,28 @@ async fn get_all_maps(db: &State) -> Result>, Str } } -pub fn get_all_routes() -> Vec { - routes![get_all_maps] +#[get("/category/")] +async fn get_maps_by_category( + db: &State, + category: &str, +) -> Result>, String> { + match Map::get_maps_by_category(db, category).await { + Ok(maps) => Ok(Json(maps)), + Err(err) => Err(format!("Error: {}", err)), + } +} + +#[get("/mapper/")] +async fn get_maps_by_mapper( + db: &State, + mapper: &str, +) -> Result>, String> { + match Map::get_maps_by_category(db, mapper).await { + Ok(maps) => Ok(Json(maps)), + Err(err) => Err(format!("Error: {}", err)), + } +} + +pub fn get_all_routes() -> Vec { + routes![get_all_maps, get_maps_by_category, get_maps_by_mapper] }