basic AI front epta
This commit is contained in:
@@ -106,38 +106,48 @@ pub async fn create_app(db: DatabaseConnection) -> Result<Router, DbErr> {
|
||||
let backend = auth::AuthBackend { db: db.clone() };
|
||||
let auth_layer = AuthManagerLayerBuilder::new(backend, session_layer).build();
|
||||
|
||||
let protected_routes = Router::new()
|
||||
let admin_family_routes = Router::new()
|
||||
.route("/families", post(routes::family::create_family))
|
||||
.route_layer(axum_middleware::from_fn(middleware::require_admin));
|
||||
.route("/families/:id", delete(routes::family::delete_family))
|
||||
.layer(auth_layer.clone())
|
||||
.route_layer(axum_middleware::from_fn(middleware::require_admin))
|
||||
.with_state(db.clone());
|
||||
|
||||
let api_routes = Router::new()
|
||||
let auth_routes = Router::new()
|
||||
.route("/login", post(routes::auth::login))
|
||||
.route("/logout", post(routes::auth::logout))
|
||||
.merge(protected_routes)
|
||||
.route("/families", get(routes::family::get_all_families))
|
||||
.route("/families/{id}", get(routes::family::get_family))
|
||||
.route("/families/{id}", put(routes::family::update_family))
|
||||
.route("/families/{id}", delete(routes::family::delete_family))
|
||||
.route("/families/{family_id}/categories", post(routes::category::create_category))
|
||||
.route("/families/{family_id}/categories", get(routes::category::get_categories_by_family))
|
||||
.route("/families/{family_id}/categories/{category_id}", get(routes::category::get_category))
|
||||
.route("/families/{family_id}/categories/{category_id}", put(routes::category::update_category))
|
||||
.route("/families/{family_id}/categories/{category_id}", delete(routes::category::delete_category))
|
||||
.route("/families/{family_id}/categories/{category_id}/expenses", post(routes::expense::create_expense))
|
||||
.route("/families/{family_id}/categories/{category_id}/expenses", get(routes::expense::get_expenses_by_category))
|
||||
.route("/families/{family_id}/categories/{category_id}/expenses/{expense_id}", get(routes::expense::get_expense))
|
||||
.route("/families/{family_id}/categories/{category_id}/expenses/{expense_id}", put(routes::expense::update_expense))
|
||||
.route("/families/{family_id}/categories/{category_id}/expenses/{expense_id}", delete(routes::expense::delete_expense))
|
||||
.route("/families/{family_id}/categories/{category_id}/remaining", get(routes::expense::get_remaining_limit))
|
||||
.layer(auth_layer)
|
||||
.with_state(db.clone());
|
||||
|
||||
let public_routes = Router::new()
|
||||
.route("/families", get(routes::family::get_all_families))
|
||||
.route("/families/:id", get(routes::family::get_family))
|
||||
.route("/families/:id", put(routes::family::update_family))
|
||||
.route("/families/:family_id/categories", post(routes::category::create_category))
|
||||
.route("/families/:family_id/categories", get(routes::category::get_categories_by_family))
|
||||
.route("/families/:family_id/categories/:category_id", get(routes::category::get_category))
|
||||
.route("/families/:family_id/categories/:category_id", put(routes::category::update_category))
|
||||
.route("/families/:family_id/categories/:category_id", delete(routes::category::delete_category))
|
||||
.route("/families/:family_id/categories/:category_id/expenses", post(routes::expense::create_expense))
|
||||
.route("/families/:family_id/categories/:category_id/expenses", get(routes::expense::get_expenses_by_category))
|
||||
.route("/families/:family_id/categories/:category_id/expenses/:expense_id", get(routes::expense::get_expense))
|
||||
.route("/families/:family_id/categories/:category_id/expenses/:expense_id", put(routes::expense::update_expense))
|
||||
.route("/families/:family_id/categories/:category_id/expenses/:expense_id", delete(routes::expense::delete_expense))
|
||||
.route("/families/:family_id/categories/:category_id/remaining", get(routes::expense::get_remaining_limit))
|
||||
.with_state(db);
|
||||
|
||||
let api_routes = Router::new()
|
||||
.merge(admin_family_routes)
|
||||
.merge(auth_routes)
|
||||
.merge(public_routes);
|
||||
|
||||
let swagger_ui = SwaggerUi::new("/swagger-ui")
|
||||
.url("/api-docs/openapi.json", ApiDoc::openapi());
|
||||
|
||||
let cors = CorsLayer::new()
|
||||
.allow_origin([
|
||||
"http://localhost:3000".parse::<HeaderValue>().unwrap(),
|
||||
"http://localhost:5173".parse::<HeaderValue>().unwrap(),
|
||||
"http://localhost:8080".parse::<HeaderValue>().unwrap(),
|
||||
])
|
||||
.allow_methods([Method::GET, Method::POST, Method::PUT, Method::DELETE, Method::OPTIONS])
|
||||
|
||||
Reference in New Issue
Block a user