package handlers import ( "github.com/gofiber/fiber/v2" "github.com/SamuelTariku/FortuneBet-Backend/internal/services/odds" "github.com/SamuelTariku/FortuneBet-Backend/internal/web_server/response" "log/slog" ) // GetPrematchOdds godoc // @Summary Retrieve prematch odds for an event // @Description Retrieve prematch odds for a specific event by event ID // @Tags prematch // @Accept json // @Produce json // @Param event_id path string true "Event ID" // @Success 200 {array} domain.Odd // @Failure 400 {object} response.APIResponse // @Failure 500 {object} response.APIResponse // @Router /prematch/odds/{event_id} [get] func GetPrematchOdds(logger *slog.Logger, prematchSvc *odds.ServiceImpl) fiber.Handler { return func(c *fiber.Ctx) error { eventID := c.Params("event_id") if eventID == "" { logger.Error("GetPrematchOdds failed: missing event_id") return response.WriteJSON(c, fiber.StatusBadRequest, "Missing event_id", nil, nil) } odds, err := prematchSvc.GetPrematchOdds(c.Context(), eventID) if err != nil { logger.Error("GetPrematchOdds failed", "error", err) return response.WriteJSON(c, fiber.StatusInternalServerError, "Failed to retrieve odds", nil, nil) } return response.WriteJSON(c, fiber.StatusOK, "Prematch odds retrieved successfully", odds, nil) } }