budgeteer/http/budget.go

37 lines
746 B
Go

package http
import (
"fmt"
"net/http"
"git.javil.eu/jacob1123/budgeteer"
"github.com/gin-gonic/gin"
)
type newBudgetInformation struct {
Name string `json:"name"`
}
func (h *Handler) newBudget(c *gin.Context) {
var newBudget newBudgetInformation
err := c.BindJSON(&newBudget)
if err != nil {
c.AbortWithError(http.StatusNotAcceptable, err)
return
}
if newBudget.Name == "" {
c.AbortWithError(http.StatusNotAcceptable, fmt.Errorf("Budget name is needed"))
return
}
userID := c.MustGet("token").(budgeteer.Token).GetID()
budget, err := h.Service.NewBudget(c.Request.Context(), newBudget.Name, userID)
if err != nil {
c.AbortWithError(http.StatusInternalServerError, err)
return
}
c.JSON(http.StatusOK, budget)
}