feat: category crud

This commit is contained in:
acx
2024-07-09 17:06:20 +00:00
parent bddf92686c
commit 7270399f35
18 changed files with 1913 additions and 3 deletions

View File

@@ -1,3 +1,46 @@
fn main() {
println!("Hello, world!");
use axum::{
// http::StatusCode,
// routing::{get, post},
// Json,
Router,
};
use serde::{Deserialize, Serialize};
use tracing::info;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
// Project modules
mod category;
mod model;
mod util;
// Passed App State
#[derive(Clone)]
pub struct AppState{
db: deadpool_diesel::postgres::Pool,
}
#[tokio::main]
async fn main() {
dotenvy::dotenv().unwrap();
tracing_subscriber::registry().with(tracing_subscriber::fmt::layer()).init();
// initialize db connection
let db_url = std::env::var("DATABASE_URL").unwrap();
let manager = deadpool_diesel::postgres::Manager::new(db_url, deadpool_diesel::Runtime::Tokio1);
let pool = deadpool_diesel::postgres::Pool::builder(manager)
.build()
.unwrap();
let shared_state = AppState {db: pool,};
// Register routers
let app = Router::new()
// V1 apis
.nest("/api/v1/category", category::handler::get_nest_handlers())
.with_state(shared_state);
let listener = tokio::net::TcpListener::bind("0.0.0.0:8987").await.unwrap();
info!("starting server on 0.0.0.0:8987");
axum::serve(listener, app).await.unwrap();
}