package handlers import ( "net/http" "github.com/labstack/echo/v5" "trankilou.fr/lassistanoque/backend/internal/domain" "trankilou.fr/lassistanoque/backend/internal/service/auth" "trankilou.fr/lassistanoque/backend/internal/service/user" ) func NewTeamGroup(prefix string, e *echo.Group, service *user.Service, middlewares ...echo.MiddlewareFunc) *echo.Group { teamHandler := &TeamHandler{ userService: service, } h := e.Group(prefix, middlewares...) h.GET("/:team", teamHandler.Get) h.PUT("/:team", teamHandler.Update) return h } type TeamHandler struct { userService *user.Service } func (h TeamHandler) Get(c *echo.Context) error { userID := c.Get(auth.ContextUserIDKey).(string) teamID := c.Param("team") user, err := h.userService.GetTeam(userID, teamID) if err != nil { return echo.NewHTTPError(http.StatusUnauthorized, err.Error()) } return c.JSON(http.StatusOK, user) } func (h TeamHandler) Update(c *echo.Context) error { userID := c.Get(auth.ContextUserIDKey).(string) teamID := c.Param("team") var updTeam domain.Team if err := c.Bind(&updTeam); err != nil { return c.String(http.StatusBadRequest, "bad request") } if teamID != updTeam.ID { return c.String(http.StatusBadRequest, "bad request") } user, err := h.userService.UpdateTeam(userID, &updTeam) if err != nil { return c.String(http.StatusBadRequest, err.Error()) } return c.JSON(http.StatusOK, user) }