feat: tag
This commit is contained in:
50
src/main.rs
50
src/main.rs
@@ -1,3 +1,4 @@
|
||||
use std::env;
|
||||
use axum::{
|
||||
// http::StatusCode,
|
||||
// routing::{get, post},
|
||||
@@ -5,18 +6,21 @@ use axum::{
|
||||
Router,
|
||||
};
|
||||
use axum::http::Method;
|
||||
use serde::{Deserialize, Serialize};
|
||||
// use pbkdf2::password_hash::Error;
|
||||
// use serde::{Deserialize, Serialize};
|
||||
use tower::ServiceBuilder;
|
||||
use tower_http::cors::{Any, CorsLayer};
|
||||
use tower_http::trace::TraceLayer;
|
||||
use tracing::info;
|
||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||
use crate::util::pass::get_pbkdf2_from_psw;
|
||||
|
||||
// Project modules
|
||||
mod category;
|
||||
mod ledger;
|
||||
mod middleware;
|
||||
mod model;
|
||||
mod util;
|
||||
mod user;
|
||||
|
||||
// Passed App State
|
||||
#[derive(Clone)]
|
||||
@@ -30,6 +34,12 @@ async fn main() {
|
||||
tracing_subscriber::registry()
|
||||
.with(tracing_subscriber::fmt::layer())
|
||||
.init();
|
||||
|
||||
let args: Vec<String> = env::args().collect();
|
||||
|
||||
if args.len() <= 1 {
|
||||
return;
|
||||
}
|
||||
// initialize db connection
|
||||
let db_url = std::env::var("DATABASE_URL").unwrap();
|
||||
|
||||
@@ -39,6 +49,37 @@ async fn main() {
|
||||
.unwrap();
|
||||
|
||||
let shared_state = AppState { db: pool };
|
||||
let cmd = args[1].clone();
|
||||
|
||||
match cmd.as_str() {
|
||||
"add_user" => {
|
||||
println!("adding user");
|
||||
if args.len() <= 4 {
|
||||
println!("insufficient arg number");
|
||||
return;
|
||||
}
|
||||
let user = args[2].clone();
|
||||
let psw = args[3].clone();
|
||||
let mail = args[4].clone();
|
||||
println!("adding user {}", user);
|
||||
let hashed = get_pbkdf2_from_psw(psw);
|
||||
let mut hash_psw = "".to_string();
|
||||
match hashed {
|
||||
Ok(val) => {
|
||||
println!("get hash {}", val);
|
||||
hash_psw=val;
|
||||
}
|
||||
Err(_) => {}
|
||||
}
|
||||
let res = user::dal::add_user(shared_state, user, hash_psw, mail)
|
||||
.await;
|
||||
return;
|
||||
}
|
||||
_ => {
|
||||
println!("unknown command {}", cmd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Register routers
|
||||
let cors_layer = CorsLayer::new()
|
||||
@@ -50,8 +91,9 @@ async fn main() {
|
||||
|
||||
let app = Router::new()
|
||||
// V1 apis
|
||||
.nest("/api/v1/category", category::handler::get_nest_handlers())
|
||||
.nest("/api/v1/v2", category::handler::get_nest_handlers())
|
||||
.nest("/api/v1/category", ledger::category::get_nest_handlers())
|
||||
.nest("/api/v1/tag", ledger::tag::get_nest_handlers())
|
||||
.nest("/api/v1/user", user::handler::get_nest_handlers())
|
||||
.with_state(shared_state)
|
||||
.layer(global_layer);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user