package handler

import (
	"net/http"

	"github.com/labstack/echo/v4"

	serror "github.com/pingcap/test-infra/services/tcms/service/common/errors"

	"github.com/pingcap/test-infra/services/tcms/utils"
)

// GetResourceDuration ...
// @Summary get ResourceDuration by plan-executions id
// @ID get-resource-duration
// @Tags plan-execution
// @Param id path integer true "ResourceDuration's PlanExecutionID"
// @Success 200 {object} []model.ResourceDuration
// @Failure default {object} HTTPError
// @Router /plan-executions/{id}/resource-duration [get]
func (h *HTTPHandler) GetResourceDuration(c echo.Context) error {
	ctx := c.(utils.Context)

	id, err := utils.ParseID(ctx.Param("id"))
	if err != nil {
		return serror.New(http.StatusBadRequest, err)
	}

	log := ctx.Log().With("execID", id)
	log.Infof("GetResourceDuration")

	res, err := h.service.ResourceDuration.Get(ctx, id)
	if err != nil {
		log.Errorf(err, "GetResourceDuration failed")
		return err
	}

	return ctx.JSON(http.StatusOK, res)
}
