add initial crates and apps
This commit is contained in:
parent
5c87ba3519
commit
1ca300098f
113 changed files with 28169 additions and 0 deletions
96
crates/chattyness-admin-ui/src/api/routes.rs
Normal file
96
crates/chattyness-admin-ui/src/api/routes.rs
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
//! Admin API routes.
|
||||
|
||||
use axum::{
|
||||
routing::{delete, get, post, put},
|
||||
Router,
|
||||
};
|
||||
|
||||
use super::{auth, config, dashboard, props, realms, scenes, spots, staff, users};
|
||||
use crate::app::AdminAppState;
|
||||
|
||||
/// Create the admin API router.
|
||||
///
|
||||
/// Note: HTML pages are handled by Leptos - this router only contains API endpoints.
|
||||
pub fn admin_api_router() -> Router<AdminAppState> {
|
||||
Router::new()
|
||||
// API - Health
|
||||
.route("/health", get(health_check))
|
||||
// API - Dashboard
|
||||
.route("/dashboard/stats", get(dashboard::get_stats))
|
||||
// API - Auth
|
||||
.route("/auth/login", post(auth::login))
|
||||
.route("/auth/logout", post(auth::logout))
|
||||
.route("/auth/context", get(auth::get_auth_context))
|
||||
// API - Config
|
||||
.route(
|
||||
"/config",
|
||||
get(config::get_config).put(config::update_config),
|
||||
)
|
||||
// API - Staff
|
||||
.route("/staff", get(staff::list_staff).post(staff::create_staff))
|
||||
.route("/staff/{user_id}", delete(staff::delete_staff))
|
||||
// API - Users
|
||||
.route("/users", get(users::list_users).post(users::create_user))
|
||||
.route("/users/search", get(users::search_users))
|
||||
.route("/users/{user_id}", get(users::get_user))
|
||||
.route("/users/{user_id}/status", put(users::update_status))
|
||||
.route(
|
||||
"/users/{user_id}/reset-password",
|
||||
post(users::reset_password),
|
||||
)
|
||||
.route(
|
||||
"/users/{user_id}/realms",
|
||||
get(users::get_user_realms).post(users::add_to_realm),
|
||||
)
|
||||
.route(
|
||||
"/users/{user_id}/realms/{realm_id}",
|
||||
delete(users::remove_from_realm),
|
||||
)
|
||||
// API - Realms
|
||||
.route(
|
||||
"/realms",
|
||||
get(realms::list_realms).post(realms::create_realm),
|
||||
)
|
||||
.route("/realms/simple", get(users::list_realms))
|
||||
.route(
|
||||
"/realms/{slug}",
|
||||
get(realms::get_realm).put(realms::update_realm),
|
||||
)
|
||||
.route(
|
||||
"/realms/{slug}/transfer",
|
||||
post(realms::transfer_ownership),
|
||||
)
|
||||
// API - Scenes
|
||||
.route(
|
||||
"/realms/{slug}/scenes",
|
||||
get(scenes::list_scenes).post(scenes::create_scene),
|
||||
)
|
||||
.route(
|
||||
"/scenes/{scene_id}",
|
||||
get(scenes::get_scene)
|
||||
.put(scenes::update_scene)
|
||||
.delete(scenes::delete_scene),
|
||||
)
|
||||
// API - Spots
|
||||
.route(
|
||||
"/scenes/{scene_id}/spots",
|
||||
get(spots::list_spots).post(spots::create_spot),
|
||||
)
|
||||
.route(
|
||||
"/spots/{spot_id}",
|
||||
get(spots::get_spot)
|
||||
.put(spots::update_spot)
|
||||
.delete(spots::delete_spot),
|
||||
)
|
||||
// API - Props (server-wide)
|
||||
.route("/props", get(props::list_props).post(props::create_prop))
|
||||
.route(
|
||||
"/props/{prop_id}",
|
||||
get(props::get_prop).delete(props::delete_prop),
|
||||
)
|
||||
}
|
||||
|
||||
/// Health check endpoint.
|
||||
async fn health_check() -> &'static str {
|
||||
"Admin API OK"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue