budgeteer/server/budget.go

31 lines
631 B
Go

package server
import (
"net/http"
"github.com/labstack/echo/v4"
)
type newBudgetInformation struct {
Name string `json:"name"`
}
func (h *Handler) newBudget(c echo.Context) error {
var newBudget newBudgetInformation
if err := c.Bind(&newBudget); err != nil {
return echo.NewHTTPError(http.StatusNotAcceptable, err)
}
if newBudget.Name == "" {
return echo.NewHTTPError(http.StatusBadRequest, "budget name is required")
}
userID := MustGetToken(c).GetID()
budget, err := h.Service.NewBudget(c.Request().Context(), newBudget.Name, userID)
if err != nil {
return err
}
return c.JSON(http.StatusOK, budget)
}