use crate::{Database, entity, error::ApiError}; use actix_web::{Responder, delete, get, post, put, web}; use serde::Deserialize; use validator::Validate; pub fn setup(cfg: &mut actix_web::web::ServiceConfig) { cfg.service(get_users) .service(get_user) .service(create_user) .service(delete_user); } #[derive(Deserialize, Validate)] struct CreateUser { #[validate(length(min = 4))] username: String, name: String, #[validate(length(min = 8))] password: String, } #[get("")] async fn get_users() -> impl Responder { "" } #[get("/{id}")] async fn get_user() -> impl Responder { "" } #[post("")] async fn create_user( db: web::Data, user: web::Json, ) -> Result, ApiError> { let user = user.into_inner(); let result = db .create_user(user.name, user.username, user.password) .await?; Ok(web::Json(result)) } #[put("")] async fn update_user() -> impl Responder { "" } #[delete("/{id}")] async fn delete_user() -> impl Responder { "" }