From d22816dfd1f29a747d607ea5a8eda686c3f1b1c8 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Fri, 22 Apr 2022 21:33:52 +0000 Subject: [PATCH] Implement account editing and autocomplete --- server/autocomplete.go | 22 ++++++++++++++++++++++ server/http.go | 1 + web/src/components/TransactionEditRow.vue | 8 ++++++++ web/src/components/TransactionRow.vue | 1 + 4 files changed, 32 insertions(+) diff --git a/server/autocomplete.go b/server/autocomplete.go index 5472430..9d88c70 100644 --- a/server/autocomplete.go +++ b/server/autocomplete.go @@ -9,6 +9,28 @@ import ( "github.com/google/uuid" ) +func (h *Handler) autocompleteAccounts(c *gin.Context) { + budgetID := c.Param("budgetid") + budgetUUID, err := uuid.Parse(budgetID) + if err != nil { + c.AbortWithStatusJSON(http.StatusBadRequest, ErrorResponse{"budgetid missing from URL"}) + return + } + + query := c.Request.URL.Query().Get("s") + searchParams := postgres.SearchAccountsParams{ + BudgetID: budgetUUID, + Search: "%" + query + "%", + } + categories, err := h.Service.SearchAccounts(c.Request.Context(), searchParams) + if err != nil { + c.AbortWithError(http.StatusInternalServerError, err) + return + } + + c.JSON(http.StatusOK, categories) +} + func (h *Handler) autocompleteCategories(c *gin.Context) { budgetID := c.Param("budgetid") budgetUUID, err := uuid.Parse(budgetID) diff --git a/server/http.go b/server/http.go index a31faba..de5f7c8 100644 --- a/server/http.go +++ b/server/http.go @@ -65,6 +65,7 @@ func (h *Handler) LoadRoutes(router *gin.Engine) { budget.GET("/:budgetid/:year/:month", h.budgetingForMonth) budget.POST("/:budgetid/category/:categoryid/:year/:month", h.setCategoryAssignment) budget.GET("/:budgetid/autocomplete/payees", h.autocompletePayee) + budget.GET("/:budgetid/autocomplete/accounts", h.autocompleteAccounts) budget.GET("/:budgetid/autocomplete/categories", h.autocompleteCategories) budget.GET("/:budgetid/problematic-transactions", h.problematicTransactions) budget.DELETE("/:budgetid", h.deleteBudget) diff --git a/web/src/components/TransactionEditRow.vue b/web/src/components/TransactionEditRow.vue index f864b64..fbc7c92 100644 --- a/web/src/components/TransactionEditRow.vue +++ b/web/src/components/TransactionEditRow.vue @@ -9,6 +9,7 @@ import Button from "./SimpleButton.vue"; const props = defineProps<{ transactionid: string + withAccount: bool }>() const emit = defineEmits(["save"]); @@ -45,6 +46,13 @@ function saveTransaction(e: MouseEvent) { class="border-b-2 border-black" /> + + +