package api import ( "time" "git.neonxp.ru/neonxp/guessr/pkg/middleware" "github.com/avito-tech/normalize" "github.com/labstack/echo/v4" ) func (h *Handler) GetState(c echo.Context) error { if state := c.Get("state"); state == nil { return c.JSON(200, &middleware.State{}) } state := c.Get("state").(*middleware.State) return c.JSON(200, state) } func (h *Handler) PostState(c echo.Context) error { req := &postStateRequest{} if err := c.Bind(req); err != nil { return err } username := normalize.Normalize(req.Username) if len(username) < 3 { return echo.ErrBadRequest } state := &middleware.State{ Username: username, } if err := middleware.SetState(c, *state, int(365*24*time.Hour)); err != nil { return err } return c.JSON(200, state) } type postStateRequest struct { Username string `json:"username"` }