use crate::controllers::users::UsersController; use crate::utils::{auth::*, error::*, models::*, DbPool}; use axum::{ extract::{Path, State}, response::Json, }; pub async fn get_users( _admin: AdminUser, State(pool): State, ) -> Result>, AppError> { let users = UsersController::get_all_users(&pool).await?; Ok(success_response(users)) } pub async fn create_user_handler( _admin: AdminUser, State(pool): State, Json(request): Json, ) -> Result, AppError> { let role = request.role.unwrap_or(UserRole::User); let storage_limit_gb = request.storage_limit_gb.unwrap_or(0); let user = UsersController::create_user( &pool, &request.username, &request.password, role, storage_limit_gb, ) .await?; Ok(success_response(user)) } pub async fn update_user_handler( _admin: AdminUser, State(pool): State, Path(user_id): Path, Json(request): Json, ) -> Result, AppError> { let updated_user = UsersController::update_user(&pool, user_id, request).await?; Ok(success_response(updated_user)) } pub async fn delete_user_handler( _admin: AdminUser, State(pool): State, Path(user_id): Path, ) -> Result, AppError> { UsersController::delete_user(&pool, user_id).await?; Ok(success_message("User deleted successfully")) }