package handlers import ( "strconv" "github.com/SamuelTariku/FortuneBet-Backend/internal/web_server/response" "github.com/gofiber/fiber/v2" ) func (h *Handler) GetAllLeagues(c *fiber.Ctx) error { leagues, err := h.leagueSvc.GetAllLeagues(c.Context()) if err != nil { return response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to get leagues", err, nil) } return response.WriteJSON(c, fiber.StatusOK, "All leagues retrived", leagues, nil) } type SetLeagueActiveReq struct { IsActive bool `json:"is_active"` } func (h *Handler) SetLeagueActive(c *fiber.Ctx) error { leagueIdStr := c.Params("id") if leagueIdStr == "" { response.WriteJSON(c, fiber.StatusBadRequest, "Missing league id", nil, nil) } leagueId, err := strconv.Atoi(leagueIdStr) if err != nil { response.WriteJSON(c, fiber.StatusBadRequest, "invalid league id", nil, nil) } var req SetLeagueActiveReq if err := c.BodyParser(&req); err != nil { h.logger.Error("SetLeagueReq failed", "error", err) return response.WriteJSON(c, fiber.StatusBadRequest, "Failed to parse request", err, nil) } valErrs, ok := h.validator.Validate(c, req) if !ok { return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", valErrs, nil) } if err := h.leagueSvc.SetLeagueActive(c.Context(), int64(leagueId), req.IsActive); err != nil { response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to update league", err, nil) } return response.WriteJSON(c, fiber.StatusOK, "League updated successfully", nil, nil) }