init feature
This commit is contained in:
@@ -45,12 +45,21 @@ pub use middleware::{require_admin, require_family_access};
|
||||
routes::expense::update_expense,
|
||||
routes::expense::delete_expense,
|
||||
routes::expense::get_remaining_limit,
|
||||
routes::shopping_item::create_shopping_item,
|
||||
routes::shopping_item::get_shopping_items_by_family,
|
||||
routes::shopping_item::get_shopping_item,
|
||||
routes::shopping_item::update_shopping_item,
|
||||
routes::shopping_item::delete_shopping_item,
|
||||
routes::shopping_item::mark_as_purchased,
|
||||
routes::shopping_item::mark_all_as_purchased,
|
||||
routes::shopping_item::clear_all,
|
||||
),
|
||||
components(
|
||||
schemas(
|
||||
models::family::Model,
|
||||
models::category::Model,
|
||||
models::expense::Model,
|
||||
models::shopping_item::Model,
|
||||
routes::auth::LoginRequest,
|
||||
routes::auth::LoginResponse,
|
||||
routes::family::CreateFamilyRequest,
|
||||
@@ -60,13 +69,18 @@ pub use middleware::{require_admin, require_family_access};
|
||||
routes::expense::CreateExpenseRequest,
|
||||
routes::expense::UpdateExpenseRequest,
|
||||
routes::expense::RemainingLimitResponse,
|
||||
routes::shopping_item::CreateShoppingItemRequest,
|
||||
routes::shopping_item::UpdateShoppingItemRequest,
|
||||
routes::shopping_item::MarkAsPurchasedRequest,
|
||||
routes::shopping_item::BulkOperationResponse,
|
||||
)
|
||||
),
|
||||
tags(
|
||||
(name = "auth", description = "Authentication endpoints"),
|
||||
(name = "families", description = "Family management endpoints"),
|
||||
(name = "categories", description = "Category management endpoints"),
|
||||
(name = "expenses", description = "Expense management endpoints")
|
||||
(name = "expenses", description = "Expense management endpoints"),
|
||||
(name = "shopping-items", description = "Shopping list management endpoints")
|
||||
),
|
||||
info(
|
||||
title = "Family Budget API",
|
||||
@@ -131,6 +145,14 @@ pub async fn create_app(db: DatabaseConnection) -> Result<Router, DbErr> {
|
||||
.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))
|
||||
.route("/families/:family_id/shopping-items", post(routes::shopping_item::create_shopping_item))
|
||||
.route("/families/:family_id/shopping-items", get(routes::shopping_item::get_shopping_items_by_family))
|
||||
.route("/families/:family_id/shopping-items/:id", get(routes::shopping_item::get_shopping_item))
|
||||
.route("/families/:family_id/shopping-items/:id", put(routes::shopping_item::update_shopping_item))
|
||||
.route("/families/:family_id/shopping-items/:id", delete(routes::shopping_item::delete_shopping_item))
|
||||
.route("/families/:family_id/shopping-items/:id/purchased", axum::routing::patch(routes::shopping_item::mark_as_purchased))
|
||||
.route("/families/:family_id/shopping-items/mark-all-purchased", post(routes::shopping_item::mark_all_as_purchased))
|
||||
.route("/families/:family_id/shopping-items/clear-all", delete(routes::shopping_item::clear_all))
|
||||
.route_layer(axum_middleware::from_fn(middleware::require_family_access))
|
||||
.layer(session_layer.clone())
|
||||
.with_state(db.clone());
|
||||
|
||||
Reference in New Issue
Block a user