package handler import ( "astra-users/model" "astra-users/pkg/utils" "errors" "github.com/labstack/echo/v4" "net/http" "strconv" ) func (h *Handler) GetPositionHandler(c echo.Context) error { id, err := strconv.Atoi(c.Param("id")) if err != nil { return c.NoContent(http.StatusBadRequest) } position, err := h.GetPosition(id) if err != nil { return err } return c.JSON(http.StatusOK, position) } func (h *Handler) GetPosition(id int) (*model.Position, error) { var position model.Position r := h.DB.Find(&position, id) if r.RowsAffected == 0 { return nil, errors.New("position not found") } return &position, nil } func (h *Handler) CreatePosition(c echo.Context) (err error) { position := new(model.PositionApi) if err = c.Bind(position); err != nil { return c.NoContent(http.StatusBadRequest) } newPosition, err := utils.TypeConverter[model.Position](position) tx := h.DB.Create(&newPosition) if tx.RowsAffected == 0 { return c.NoContent(http.StatusBadGateway) } return c.JSON(http.StatusCreated, newPosition) }