chore: full removal of recurring deposits
This commit is contained in:
parent
f05c36e44f
commit
b092d12c57
5 changed files with 8 additions and 42 deletions
|
|
@ -39,7 +39,7 @@ func main() {
|
||||||
// Start recurring expense scheduler
|
// Start recurring expense scheduler
|
||||||
schedulerCtx, schedulerCancel := context.WithCancel(context.Background())
|
schedulerCtx, schedulerCancel := context.WithCancel(context.Background())
|
||||||
defer schedulerCancel()
|
defer schedulerCancel()
|
||||||
sched := scheduler.New(a.RecurringExpenseService, a.RecurringDepositService)
|
sched := scheduler.New(a.RecurringExpenseService)
|
||||||
go sched.Start(schedulerCtx)
|
go sched.Start(schedulerCtx)
|
||||||
|
|
||||||
// Health check bypasses all middleware
|
// Health check bypasses all middleware
|
||||||
|
|
|
||||||
|
|
@ -1334,9 +1334,6 @@ func (h *SpaceHandler) AccountsPage(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lazy process recurring deposits
|
|
||||||
h.recurringDepositService.ProcessDueRecurrencesForSpace(spaceID, time.Now())
|
|
||||||
|
|
||||||
accounts, err := h.accountService.GetAccountsForSpace(spaceID)
|
accounts, err := h.accountService.GetAccountsForSpace(spaceID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("failed to get accounts for space", "error", err, "space_id", spaceID)
|
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
|
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)
|
transfers, totalPages, err := h.accountService.GetTransfersForSpacePaginated(spaceID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("failed to get transfers", "error", err, "space_id", spaceID)
|
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
|
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) {
|
func (h *SpaceHandler) CreateAccount(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
|
||||||
|
|
@ -158,23 +158,6 @@ func SetupRoutes(a *app.App) http.Handler {
|
||||||
deleteTransferWithAuth := middleware.RequireAuth(deleteTransferHandler)
|
deleteTransferWithAuth := middleware.RequireAuth(deleteTransferHandler)
|
||||||
mux.Handle("DELETE /app/spaces/{spaceID}/accounts/{accountID}/transfers/{transferID}", crudLimiter(deleteTransferWithAuth))
|
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
|
// Payment Method routes
|
||||||
methodsPageHandler := middleware.RequireSpaceAccess(a.SpaceService)(space.PaymentMethodsPage)
|
methodsPageHandler := middleware.RequireSpaceAccess(a.SpaceService)(space.PaymentMethodsPage)
|
||||||
methodsPageWithAuth := middleware.RequireAuth(methodsPageHandler)
|
methodsPageWithAuth := middleware.RequireAuth(methodsPageHandler)
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,12 @@ import (
|
||||||
|
|
||||||
type Scheduler struct {
|
type Scheduler struct {
|
||||||
recurringService *service.RecurringExpenseService
|
recurringService *service.RecurringExpenseService
|
||||||
recurringDepositService *service.RecurringDepositService
|
|
||||||
interval time.Duration
|
interval time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(recurringService *service.RecurringExpenseService, recurringDepositService *service.RecurringDepositService) *Scheduler {
|
func New(recurringService *service.RecurringExpenseService) *Scheduler {
|
||||||
return &Scheduler{
|
return &Scheduler{
|
||||||
recurringService: recurringService,
|
recurringService: recurringService,
|
||||||
recurringDepositService: recurringDepositService,
|
|
||||||
interval: 1 * time.Hour,
|
interval: 1 * time.Hour,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -47,9 +45,4 @@ func (s *Scheduler) run() {
|
||||||
if err := s.recurringService.ProcessDueRecurrences(now); err != nil {
|
if err := s.recurringService.ProcessDueRecurrences(now); err != nil {
|
||||||
slog.Error("scheduler: failed to process recurring expenses", "error", err)
|
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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import (
|
||||||
"git.juancwu.dev/juancwu/budgit/internal/ui/layouts"
|
"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) {
|
@layouts.Space("Accounts", space) {
|
||||||
<div class="space-y-4">
|
<div class="space-y-4">
|
||||||
<div class="flex justify-between items-center">
|
<div class="flex justify-between items-center">
|
||||||
|
|
@ -41,7 +41,6 @@ templ SpaceAccountsPage(space *model.Space, accounts []model.MoneyAccountWithBal
|
||||||
@moneyaccount.AccountCard(space.ID, &acct)
|
@moneyaccount.AccountCard(space.ID, &acct)
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@moneyaccount.RecurringDepositsSection(space.ID, recurringDeposits, accounts)
|
|
||||||
@moneyaccount.TransferHistorySection(space.ID, transfers, currentPage, totalPages)
|
@moneyaccount.TransferHistorySection(space.ID, transfers, currentPage, totalPages)
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue