diff --git a/src/main.rs b/src/main.rs index 2056757..4358f74 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,18 +1,15 @@ use actix_web::{App, HttpServer}; mod models; mod repositories; +mod routes; mod services; mod utils; -mod routes; use crate::routes::user_routes; #[actix_web::main] async fn main() -> std::io::Result<()> { - HttpServer::new(|| { - App::new() - .configure(user_routes::register) - }) + HttpServer::new(|| App::new().configure(user_routes::register)) .bind("127.0.0.1:8080")? .run() .await diff --git a/src/models/mod.rs b/src/models/mod.rs index 018ff2e..22d12a3 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -1 +1 @@ -pub mod user; \ No newline at end of file +pub mod user; diff --git a/src/models/user.rs b/src/models/user.rs index 334058f..e5e37ed 100644 --- a/src/models/user.rs +++ b/src/models/user.rs @@ -1,4 +1,4 @@ -use mysql::prelude::{FromRow}; +use mysql::prelude::FromRow; use mysql::{FromRowError, Row}; #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] @@ -12,7 +12,14 @@ pub struct User { impl FromRow for User { fn from_row_opt(row: Row) -> mysql::Result { - let (id, name, age, email, password) = mysql::from_row::<(i32, String, i32, String, String)>(row); - Ok(User { id, name, age, email, password }) + let (id, name, age, email, password) = + mysql::from_row::<(i32, String, i32, String, String)>(row); + Ok(User { + id, + name, + age, + email, + password, + }) } -} \ No newline at end of file +} diff --git a/src/repositories/mod.rs b/src/repositories/mod.rs index 0017864..a5188ff 100644 --- a/src/repositories/mod.rs +++ b/src/repositories/mod.rs @@ -1 +1 @@ -pub mod user_repository; \ No newline at end of file +pub mod user_repository; diff --git a/src/repositories/user_repository.rs b/src/repositories/user_repository.rs index e216435..fced02c 100644 --- a/src/repositories/user_repository.rs +++ b/src/repositories/user_repository.rs @@ -1,6 +1,6 @@ +use crate::models::user::User; use mysql::params; use mysql::prelude::Queryable; -use crate::models::user::User; /** * 新建用户 @@ -52,8 +52,12 @@ pub fn update_user(conn: &mut mysql::PooledConn, user: &User) -> Result<(), mysq pub fn query_all_user(conn: &mut mysql::PooledConn) -> Result, mysql::Error> { conn.query_map( "SELECT id, name, age, email, password FROM users", - |(id, name, age, email, password)| { - User { id, name, age, email, password } + |(id, name, age, email, password)| User { + id, + name, + age, + email, + password, }, ) } @@ -61,7 +65,10 @@ pub fn query_all_user(conn: &mut mysql::PooledConn) -> Result, mysql:: /** * 根据ID查询用户 */ -pub fn query_user_by_id(conn: &mut mysql::PooledConn, id: i32) -> Result, mysql::Error> { +pub fn query_user_by_id( + conn: &mut mysql::PooledConn, + id: i32, +) -> Result, mysql::Error> { let result: Option = conn.exec_first( "SELECT id, name, age, email, password FROM users WHERE id = :id", params! { @@ -74,7 +81,10 @@ pub fn query_user_by_id(conn: &mut mysql::PooledConn, id: i32) -> Result Result, mysql::Error> { +pub fn query_user_by_name( + conn: &mut mysql::PooledConn, + name: &str, +) -> Result, mysql::Error> { conn.exec_first( "SELECT id, name, age, email, password FROM users WHERE name = :name", params! { @@ -86,11 +96,14 @@ pub fn query_user_by_name(conn: &mut mysql::PooledConn, name: &str) -> Result Result, mysql::Error> { +pub fn query_user_by_email( + conn: &mut mysql::PooledConn, + email: &str, +) -> Result, mysql::Error> { conn.exec_first( "SELECT id, name, age, email, password FROM users WHERE email = :email", params! { "email" => email, }, ) -} \ No newline at end of file +} diff --git a/src/routes/mod.rs b/src/routes/mod.rs index 8cda988..68b591f 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -1 +1 @@ -pub mod user_routes; \ No newline at end of file +pub mod user_routes; diff --git a/src/routes/user_routes.rs b/src/routes/user_routes.rs index 1d3f38b..f844a5a 100644 --- a/src/routes/user_routes.rs +++ b/src/routes/user_routes.rs @@ -1,7 +1,7 @@ -use actix_web::{get, post, web, HttpResponse, Responder}; use crate::models::user::User; use crate::services::user_service; use crate::utils::pool; +use actix_web::{get, post, web, HttpResponse, Responder}; pub(crate) fn register(config: &mut web::ServiceConfig) { config.service(register_user); @@ -55,7 +55,7 @@ async fn query_user_by_email(path: web::Path) -> impl Responder { let email = path.into_inner(); match user_service::query_user_by_email(&mut conn, email.as_str()) { Ok(user) => HttpResponse::Ok().json(user), - Err(_) => HttpResponse::NotFound().json("User not found") + Err(_) => HttpResponse::NotFound().json("User not found"), } } @@ -66,7 +66,7 @@ async fn query_user_by_name(path: web::Path) -> impl Responder { let name = path.into_inner(); match user_service::query_user_by_name(&mut conn, name.as_str()) { Ok(user) => HttpResponse::Ok().json(user), - Err(_) => HttpResponse::NotFound().json("User not found") + Err(_) => HttpResponse::NotFound().json("User not found"), } } @@ -84,4 +84,4 @@ async fn delete_user(user: web::Json) -> impl Responder { let mut conn = pool.get_conn().unwrap(); user_service::delete_user(&mut conn, &user).unwrap(); HttpResponse::Ok().json("User deleted successfully") -} \ No newline at end of file +} diff --git a/src/services/mod.rs b/src/services/mod.rs index fffae05..4f2070f 100644 --- a/src/services/mod.rs +++ b/src/services/mod.rs @@ -1 +1 @@ -pub mod user_service; \ No newline at end of file +pub mod user_service; diff --git a/src/services/user_service.rs b/src/services/user_service.rs index 1514542..77ac1af 100644 --- a/src/services/user_service.rs +++ b/src/services/user_service.rs @@ -1,8 +1,8 @@ -use mysql::PooledConn; use crate::models::user::User; use crate::repositories::user_repository; -use mysql; use bcrypt::{hash, DEFAULT_COST}; +use mysql; +use mysql::PooledConn; /** * 新建用户 @@ -23,7 +23,10 @@ pub fn query_user_by_id(conn: &mut PooledConn, id: i32) -> Result, user_repository::query_user_by_id(conn, id) } -pub fn query_user_by_email(conn: &mut PooledConn, email: &str) -> Result, mysql::Error> { +pub fn query_user_by_email( + conn: &mut PooledConn, + email: &str, +) -> Result, mysql::Error> { user_repository::query_user_by_email(conn, email) } @@ -53,4 +56,4 @@ pub fn delete_user(conn: &mut PooledConn, user: &User) -> Result<(), mysql::Erro } user_repository::delete_user(conn, user) -} \ No newline at end of file +}