优化代码格式,调整模块导入顺序,增强可读性

This commit is contained in:
LingandRX 2024-11-09 21:49:12 +08:00
parent 7b7f7492b9
commit fffc761108
9 changed files with 48 additions and 28 deletions

View File

@ -1,18 +1,15 @@
use actix_web::{App, HttpServer}; use actix_web::{App, HttpServer};
mod models; mod models;
mod repositories; mod repositories;
mod routes;
mod services; mod services;
mod utils; mod utils;
mod routes;
use crate::routes::user_routes; use crate::routes::user_routes;
#[actix_web::main] #[actix_web::main]
async fn main() -> std::io::Result<()> { async fn main() -> std::io::Result<()> {
HttpServer::new(|| { HttpServer::new(|| App::new().configure(user_routes::register))
App::new()
.configure(user_routes::register)
})
.bind("127.0.0.1:8080")? .bind("127.0.0.1:8080")?
.run() .run()
.await .await

View File

@ -1 +1 @@
pub mod user; pub mod user;

View File

@ -1,4 +1,4 @@
use mysql::prelude::{FromRow}; use mysql::prelude::FromRow;
use mysql::{FromRowError, Row}; use mysql::{FromRowError, Row};
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
@ -12,7 +12,14 @@ pub struct User {
impl FromRow for User { impl FromRow for User {
fn from_row_opt(row: Row) -> mysql::Result<Self, FromRowError> { fn from_row_opt(row: Row) -> mysql::Result<Self, FromRowError> {
let (id, name, age, email, password) = mysql::from_row::<(i32, String, i32, String, String)>(row); let (id, name, age, email, password) =
Ok(User { id, name, age, email, password }) mysql::from_row::<(i32, String, i32, String, String)>(row);
Ok(User {
id,
name,
age,
email,
password,
})
} }
} }

View File

@ -1 +1 @@
pub mod user_repository; pub mod user_repository;

View File

@ -1,6 +1,6 @@
use crate::models::user::User;
use mysql::params; use mysql::params;
use mysql::prelude::Queryable; 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<Vec<User>, mysql::Error> { pub fn query_all_user(conn: &mut mysql::PooledConn) -> Result<Vec<User>, mysql::Error> {
conn.query_map( conn.query_map(
"SELECT id, name, age, email, password FROM users", "SELECT id, name, age, email, password FROM users",
|(id, name, age, email, password)| { |(id, name, age, email, password)| User {
User { id, name, age, email, password } id,
name,
age,
email,
password,
}, },
) )
} }
@ -61,7 +65,10 @@ pub fn query_all_user(conn: &mut mysql::PooledConn) -> Result<Vec<User>, mysql::
/** /**
* ID查询用户 * ID查询用户
*/ */
pub fn query_user_by_id(conn: &mut mysql::PooledConn, id: i32) -> Result<Option<User>, mysql::Error> { pub fn query_user_by_id(
conn: &mut mysql::PooledConn,
id: i32,
) -> Result<Option<User>, mysql::Error> {
let result: Option<User> = conn.exec_first( let result: Option<User> = conn.exec_first(
"SELECT id, name, age, email, password FROM users WHERE id = :id", "SELECT id, name, age, email, password FROM users WHERE id = :id",
params! { params! {
@ -74,7 +81,10 @@ pub fn query_user_by_id(conn: &mut mysql::PooledConn, id: i32) -> Result<Option<
/** /**
* *
*/ */
pub fn query_user_by_name(conn: &mut mysql::PooledConn, name: &str) -> Result<Option<User>, mysql::Error> { pub fn query_user_by_name(
conn: &mut mysql::PooledConn,
name: &str,
) -> Result<Option<User>, mysql::Error> {
conn.exec_first( conn.exec_first(
"SELECT id, name, age, email, password FROM users WHERE name = :name", "SELECT id, name, age, email, password FROM users WHERE name = :name",
params! { params! {
@ -86,11 +96,14 @@ pub fn query_user_by_name(conn: &mut mysql::PooledConn, name: &str) -> Result<Op
/** /**
* *
*/ */
pub fn query_user_by_email(conn: &mut mysql::PooledConn, email: &str) -> Result<Option<User>, mysql::Error> { pub fn query_user_by_email(
conn: &mut mysql::PooledConn,
email: &str,
) -> Result<Option<User>, mysql::Error> {
conn.exec_first( conn.exec_first(
"SELECT id, name, age, email, password FROM users WHERE email = :email", "SELECT id, name, age, email, password FROM users WHERE email = :email",
params! { params! {
"email" => email, "email" => email,
}, },
) )
} }

View File

@ -1 +1 @@
pub mod user_routes; pub mod user_routes;

View File

@ -1,7 +1,7 @@
use actix_web::{get, post, web, HttpResponse, Responder};
use crate::models::user::User; use crate::models::user::User;
use crate::services::user_service; use crate::services::user_service;
use crate::utils::pool; use crate::utils::pool;
use actix_web::{get, post, web, HttpResponse, Responder};
pub(crate) fn register(config: &mut web::ServiceConfig) { pub(crate) fn register(config: &mut web::ServiceConfig) {
config.service(register_user); config.service(register_user);
@ -55,7 +55,7 @@ async fn query_user_by_email(path: web::Path<String>) -> impl Responder {
let email = path.into_inner(); let email = path.into_inner();
match user_service::query_user_by_email(&mut conn, email.as_str()) { match user_service::query_user_by_email(&mut conn, email.as_str()) {
Ok(user) => HttpResponse::Ok().json(user), 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<String>) -> impl Responder {
let name = path.into_inner(); let name = path.into_inner();
match user_service::query_user_by_name(&mut conn, name.as_str()) { match user_service::query_user_by_name(&mut conn, name.as_str()) {
Ok(user) => HttpResponse::Ok().json(user), 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<User>) -> impl Responder {
let mut conn = pool.get_conn().unwrap(); let mut conn = pool.get_conn().unwrap();
user_service::delete_user(&mut conn, &user).unwrap(); user_service::delete_user(&mut conn, &user).unwrap();
HttpResponse::Ok().json("User deleted successfully") HttpResponse::Ok().json("User deleted successfully")
} }

View File

@ -1 +1 @@
pub mod user_service; pub mod user_service;

View File

@ -1,8 +1,8 @@
use mysql::PooledConn;
use crate::models::user::User; use crate::models::user::User;
use crate::repositories::user_repository; use crate::repositories::user_repository;
use mysql;
use bcrypt::{hash, DEFAULT_COST}; 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<Option<User>,
user_repository::query_user_by_id(conn, id) user_repository::query_user_by_id(conn, id)
} }
pub fn query_user_by_email(conn: &mut PooledConn, email: &str) -> Result<Option<User>, mysql::Error> { pub fn query_user_by_email(
conn: &mut PooledConn,
email: &str,
) -> Result<Option<User>, mysql::Error> {
user_repository::query_user_by_email(conn, email) 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) user_repository::delete_user(conn, user)
} }