From 3b465f17cf988df0cb2bda3147f6844538f9a5d5 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 22 Apr 2022 21:24:48 +0000 Subject: [PATCH] Implement problematic transactions endpoint --- server/account.go | 21 +++++++++++++++++++-- server/http.go | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/server/account.go b/server/account.go index d92746c..758ada8 100644 --- a/server/account.go +++ b/server/account.go @@ -8,6 +8,23 @@ import ( "github.com/google/uuid" ) +func (h *Handler) problematicTransactions(c *gin.Context) { + budgetID := c.Param("budgetid") + budgetUUID, err := uuid.Parse(budgetID) + if err != nil { + c.AbortWithError(http.StatusBadRequest, err) + return + } + + transactions, err := h.Service.GetProblematicTransactions(c.Request.Context(), budgetUUID) + if err != nil { + c.AbortWithError(http.StatusInternalServerError, err) + return + } + + c.JSON(http.StatusOK, TransactionsResponse{nil, transactions}) +} + func (h *Handler) transactionsForAccount(c *gin.Context) { accountID := c.Param("accountid") accountUUID, err := uuid.Parse(accountID) @@ -28,11 +45,11 @@ func (h *Handler) transactionsForAccount(c *gin.Context) { return } - c.JSON(http.StatusOK, TransactionsResponse{account, transactions}) + c.JSON(http.StatusOK, TransactionsResponse{&account, transactions}) } type TransactionsResponse struct { - Account postgres.Account + Account *postgres.Account Transactions []postgres.DisplayTransaction } diff --git a/server/http.go b/server/http.go index b96a645..a31faba 100644 --- a/server/http.go +++ b/server/http.go @@ -66,6 +66,7 @@ func (h *Handler) LoadRoutes(router *gin.Engine) { budget.POST("/:budgetid/category/:categoryid/:year/:month", h.setCategoryAssignment) budget.GET("/:budgetid/autocomplete/payees", h.autocompletePayee) budget.GET("/:budgetid/autocomplete/categories", h.autocompleteCategories) + budget.GET("/:budgetid/problematic-transactions", h.problematicTransactions) budget.DELETE("/:budgetid", h.deleteBudget) budget.POST("/:budgetid/import/ynab", h.importYNAB) budget.POST("/:budgetid/export/ynab/transactions", h.exportYNABTransactions)