The commit adds a complete example environment configuration file documenting all available settings for BotServer, including logging, database, server, drive, LLM, Redis, email, and feature flags. Also removes hardcoded environment variable usage throughout the codebase, replacing them with configuration via config.csv or appropriate defaults. This includes: - WhatsApp, Teams, Instagram adapter configurations - Weather API key handling - Email and directory service configurations - Console feature conditionally compiles monitoring code - Improved logging configuration with library suppression
103 lines
3.9 KiB
Rust
103 lines
3.9 KiB
Rust
#![allow(dead_code)]
|
|
|
|
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/preferences/update",
|
|
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/roles",
|
|
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),
|
|
)
|
|
}
|