package http import ( "fmt" "net/http" "git.javil.eu/jacob1123/budgeteer/postgres" "github.com/gin-gonic/gin" "github.com/google/uuid" ) func (h *Handler) importYNAB(c *gin.Context) { budgetID, succ := c.GetPostForm("budget_id") if !succ { c.AbortWithError(http.StatusBadRequest, fmt.Errorf("no budget_id specified")) return } budgetUUID, err := uuid.Parse(budgetID) if !succ { c.AbortWithError(http.StatusBadRequest, err) return } ynab, err := postgres.NewYNABImport(c.Request.Context(), h.Service.Queries, budgetUUID) if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } transactionsFile, err := c.FormFile("transactions") if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } transactions, err := transactionsFile.Open() if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } err = ynab.ImportTransactions(transactions) if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } assignmentsFile, err := c.FormFile("assignments") if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } assignments, err := assignmentsFile.Open() if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } err = ynab.ImportAssignments(assignments) if err != nil { c.AbortWithError(http.StatusInternalServerError, err) return } }