feat: create accounts to partition money

This commit is contained in:
juancwu 2026-02-13 00:56:07 +00:00
commit d6f6790c4d
11 changed files with 1026 additions and 4 deletions

View file

@ -15,7 +15,7 @@ func SetupRoutes(a *app.App) http.Handler {
home := handler.NewHomeHandler()
dashboard := handler.NewDashboardHandler(a.SpaceService, a.ExpenseService)
settings := handler.NewSettingsHandler(a.AuthService, a.UserService)
space := handler.NewSpaceHandler(a.SpaceService, a.TagService, a.ShoppingListService, a.ExpenseService, a.InviteService)
space := handler.NewSpaceHandler(a.SpaceService, a.TagService, a.ShoppingListService, a.ExpenseService, a.InviteService, a.MoneyAccountService)
mux := http.NewServeMux()
@ -126,6 +126,31 @@ func SetupRoutes(a *app.App) http.Handler {
deleteExpenseWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(deleteExpenseHandler)
mux.Handle("DELETE /app/spaces/{spaceID}/expenses/{expenseID}", deleteExpenseWithAccess)
// Money Account routes
accountsPageHandler := middleware.RequireAuth(space.AccountsPage)
accountsPageWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(accountsPageHandler)
mux.Handle("GET /app/spaces/{spaceID}/accounts", accountsPageWithAccess)
createAccountHandler := middleware.RequireAuth(space.CreateAccount)
createAccountWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(createAccountHandler)
mux.Handle("POST /app/spaces/{spaceID}/accounts", createAccountWithAccess)
updateAccountHandler := middleware.RequireAuth(space.UpdateAccount)
updateAccountWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(updateAccountHandler)
mux.Handle("PATCH /app/spaces/{spaceID}/accounts/{accountID}", updateAccountWithAccess)
deleteAccountHandler := middleware.RequireAuth(space.DeleteAccount)
deleteAccountWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(deleteAccountHandler)
mux.Handle("DELETE /app/spaces/{spaceID}/accounts/{accountID}", deleteAccountWithAccess)
createTransferHandler := middleware.RequireAuth(space.CreateTransfer)
createTransferWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(createTransferHandler)
mux.Handle("POST /app/spaces/{spaceID}/accounts/{accountID}/transfers", createTransferWithAccess)
deleteTransferHandler := middleware.RequireAuth(space.DeleteTransfer)
deleteTransferWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(deleteTransferHandler)
mux.Handle("DELETE /app/spaces/{spaceID}/accounts/{accountID}/transfers/{transferID}", deleteTransferWithAccess)
// Component routes (HTMX updates)
balanceCardHandler := middleware.RequireAuth(space.GetBalanceCard)
balanceCardWithAccess := middleware.RequireSpaceAccess(a.SpaceService)(balanceCardHandler)