chore: full removal of recurring deposits

This commit is contained in:
juancwu 2026-03-14 14:51:23 +00:00
commit b092d12c57
5 changed files with 8 additions and 42 deletions

View file

@ -39,7 +39,7 @@ func main() {
// Start recurring expense scheduler
schedulerCtx, schedulerCancel := context.WithCancel(context.Background())
defer schedulerCancel()
sched := scheduler.New(a.RecurringExpenseService, a.RecurringDepositService)
sched := scheduler.New(a.RecurringExpenseService)
go sched.Start(schedulerCtx)
// Health check bypasses all middleware

View file

@ -1334,9 +1334,6 @@ func (h *SpaceHandler) AccountsPage(w http.ResponseWriter, r *http.Request) {
return
}
// Lazy process recurring deposits
h.recurringDepositService.ProcessDueRecurrencesForSpace(spaceID, time.Now())
accounts, err := h.accountService.GetAccountsForSpace(spaceID)
if err != nil {
slog.Error("failed to get accounts for space", "error", err, "space_id", spaceID)
@ -1360,12 +1357,6 @@ func (h *SpaceHandler) AccountsPage(w http.ResponseWriter, r *http.Request) {
availableBalance := totalBalance - totalAllocated
recurringDeposits, err := h.recurringDepositService.GetRecurringDepositsWithAccountsForSpace(spaceID)
if err != nil {
slog.Error("failed to get recurring deposits", "error", err, "space_id", spaceID)
recurringDeposits = nil
}
transfers, totalPages, err := h.accountService.GetTransfersForSpacePaginated(spaceID, 1)
if err != nil {
slog.Error("failed to get transfers", "error", err, "space_id", spaceID)
@ -1373,7 +1364,7 @@ func (h *SpaceHandler) AccountsPage(w http.ResponseWriter, r *http.Request) {
totalPages = 1
}
ui.Render(w, r, pages.SpaceAccountsPage(space, accounts, totalBalance, availableBalance, recurringDeposits, transfers, 1, totalPages))
ui.Render(w, r, pages.SpaceAccountsPage(space, accounts, totalBalance, availableBalance, transfers, 1, totalPages))
}
func (h *SpaceHandler) CreateAccount(w http.ResponseWriter, r *http.Request) {

View file

@ -158,23 +158,6 @@ func SetupRoutes(a *app.App) http.Handler {
deleteTransferWithAuth := middleware.RequireAuth(deleteTransferHandler)
mux.Handle("DELETE /app/spaces/{spaceID}/accounts/{accountID}/transfers/{transferID}", crudLimiter(deleteTransferWithAuth))
// Recurring Deposit routes
createRecurringDepositHandler := middleware.RequireSpaceAccess(a.SpaceService)(space.CreateRecurringDeposit)
createRecurringDepositWithAuth := middleware.RequireAuth(createRecurringDepositHandler)
mux.Handle("POST /app/spaces/{spaceID}/accounts/recurring", crudLimiter(createRecurringDepositWithAuth))
updateRecurringDepositHandler := middleware.RequireSpaceAccess(a.SpaceService)(space.UpdateRecurringDeposit)
updateRecurringDepositWithAuth := middleware.RequireAuth(updateRecurringDepositHandler)
mux.Handle("PATCH /app/spaces/{spaceID}/accounts/recurring/{recurringDepositID}", crudLimiter(updateRecurringDepositWithAuth))
deleteRecurringDepositHandler := middleware.RequireSpaceAccess(a.SpaceService)(space.DeleteRecurringDeposit)
deleteRecurringDepositWithAuth := middleware.RequireAuth(deleteRecurringDepositHandler)
mux.Handle("DELETE /app/spaces/{spaceID}/accounts/recurring/{recurringDepositID}", crudLimiter(deleteRecurringDepositWithAuth))
toggleRecurringDepositHandler := middleware.RequireSpaceAccess(a.SpaceService)(space.ToggleRecurringDeposit)
toggleRecurringDepositWithAuth := middleware.RequireAuth(toggleRecurringDepositHandler)
mux.Handle("POST /app/spaces/{spaceID}/accounts/recurring/{recurringDepositID}/toggle", crudLimiter(toggleRecurringDepositWithAuth))
// Payment Method routes
methodsPageHandler := middleware.RequireSpaceAccess(a.SpaceService)(space.PaymentMethodsPage)
methodsPageWithAuth := middleware.RequireAuth(methodsPageHandler)

View file

@ -10,14 +10,12 @@ import (
type Scheduler struct {
recurringService *service.RecurringExpenseService
recurringDepositService *service.RecurringDepositService
interval time.Duration
}
func New(recurringService *service.RecurringExpenseService, recurringDepositService *service.RecurringDepositService) *Scheduler {
func New(recurringService *service.RecurringExpenseService) *Scheduler {
return &Scheduler{
recurringService: recurringService,
recurringDepositService: recurringDepositService,
interval: 1 * time.Hour,
}
}
@ -47,9 +45,4 @@ func (s *Scheduler) run() {
if err := s.recurringService.ProcessDueRecurrences(now); err != nil {
slog.Error("scheduler: failed to process recurring expenses", "error", err)
}
slog.Info("scheduler: processing due recurring deposits")
if err := s.recurringDepositService.ProcessDueRecurrences(now); err != nil {
slog.Error("scheduler: failed to process recurring deposits", "error", err)
}
}

View file

@ -8,7 +8,7 @@ import (
"git.juancwu.dev/juancwu/budgit/internal/ui/layouts"
)
templ SpaceAccountsPage(space *model.Space, accounts []model.MoneyAccountWithBalance, totalBalance int, availableBalance int, recurringDeposits []*model.RecurringDepositWithAccount, transfers []*model.AccountTransferWithAccount, currentPage, totalPages int) {
templ SpaceAccountsPage(space *model.Space, accounts []model.MoneyAccountWithBalance, totalBalance int, availableBalance int, transfers []*model.AccountTransferWithAccount, currentPage, totalPages int) {
@layouts.Space("Accounts", space) {
<div class="space-y-4">
<div class="flex justify-between items-center">
@ -41,7 +41,6 @@ templ SpaceAccountsPage(space *model.Space, accounts []model.MoneyAccountWithBal
@moneyaccount.AccountCard(space.ID, &acct)
}
</div>
@moneyaccount.RecurringDepositsSection(space.ID, recurringDeposits, accounts)
@moneyaccount.TransferHistorySection(space.ID, transfers, currentPage, totalPages)
</div>
}