2025-11-27 15:19:17 -03:00
|
|
|
#![allow(dead_code)]
|
|
|
|
|
|
2025-11-22 22:55:35 -03:00
|
|
|
use axum::{
|
|
|
|
|
routing::{delete, get, post, put},
|
|
|
|
|
Router,
|
|
|
|
|
};
|
|
|
|
|
use std::sync::Arc;
|
|
|
|
|
|
|
|
|
|
use crate::shared::state::AppState;
|
|
|
|
|
|
|
|
|
|
use super::groups;
|
|
|
|
|
use super::users;
|
|
|
|
|
|
|
|
|
|
/// Configure all authentication, user management, group management routes
|
|
|
|
|
/// File management is handled by the existing /api/files routes in crate::api::files
|
|
|
|
|
pub fn configure() -> Router<Arc<AppState>> {
|
|
|
|
|
Router::new()
|
|
|
|
|
// ============================================================================
|
|
|
|
|
// User Management & Authentication
|
|
|
|
|
// ============================================================================
|
|
|
|
|
.route("/users/create", post(users::create_user))
|
|
|
|
|
.route("/users/:user_id/update", put(users::update_user))
|
|
|
|
|
.route("/users/:user_id/delete", delete(users::delete_user))
|
|
|
|
|
.route("/users/list", get(users::list_users))
|
|
|
|
|
.route("/users/search", get(users::list_users)) // Uses query params
|
|
|
|
|
.route("/users/:user_id/profile", get(users::get_user_profile))
|
|
|
|
|
.route("/users/:user_id/profile/update", put(users::update_user))
|
|
|
|
|
.route("/users/:user_id/settings", get(users::get_user_profile))
|
|
|
|
|
.route("/users/:user_id/permissions", get(users::get_user_profile))
|
|
|
|
|
.route("/users/:user_id/roles", get(users::get_user_profile))
|
|
|
|
|
.route("/users/:user_id/status", get(users::get_user_profile))
|
|
|
|
|
.route("/users/:user_id/presence", get(users::get_user_profile))
|
|
|
|
|
.route("/users/:user_id/activity", get(users::get_user_profile))
|
|
|
|
|
.route(
|
|
|
|
|
"/users/:user_id/security/2fa/enable",
|
|
|
|
|
post(users::get_user_profile),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/users/:user_id/security/2fa/disable",
|
|
|
|
|
post(users::get_user_profile),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/users/:user_id/security/devices",
|
|
|
|
|
get(users::get_user_profile),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/users/:user_id/security/sessions",
|
|
|
|
|
get(users::get_user_profile),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/users/:user_id/notifications/settings",
|
|
|
|
|
get(users::get_user_profile),
|
|
|
|
|
)
|
|
|
|
|
// ============================================================================
|
|
|
|
|
// Groups & Organizations
|
|
|
|
|
// ============================================================================
|
|
|
|
|
.route("/groups/create", post(groups::create_group))
|
|
|
|
|
.route("/groups/:group_id/update", put(groups::update_group))
|
|
|
|
|
.route("/groups/:group_id/delete", delete(groups::delete_group))
|
|
|
|
|
.route("/groups/list", get(groups::list_groups))
|
|
|
|
|
.route("/groups/search", get(groups::list_groups)) // Uses query params
|
|
|
|
|
.route("/groups/:group_id/members", get(groups::get_group_members))
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/members/add",
|
|
|
|
|
post(groups::add_group_member),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/members/remove",
|
|
|
|
|
post(groups::remove_group_member),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/permissions",
|
|
|
|
|
get(groups::get_group_members),
|
|
|
|
|
)
|
|
|
|
|
.route("/groups/:group_id/settings", get(groups::get_group_members))
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/analytics",
|
|
|
|
|
get(groups::get_group_members),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/join/request",
|
|
|
|
|
post(groups::add_group_member),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/join/approve",
|
|
|
|
|
post(groups::add_group_member),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/join/reject",
|
|
|
|
|
post(groups::remove_group_member),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/invites/send",
|
|
|
|
|
post(groups::add_group_member),
|
|
|
|
|
)
|
|
|
|
|
.route(
|
|
|
|
|
"/groups/:group_id/invites/list",
|
|
|
|
|
get(groups::get_group_members),
|
|
|
|
|
)
|
|
|
|
|
}
|