package dispatch

import (
	"github.com/gin-gonic/gin"

	dispatchapi "github.com/tidbcloud/aisupport/packages/sdk-go/contracts/api/ticket-manager/dispatch"
	apiutils "github.com/tidbcloud/aisupport/packages/sdk-go/infra/apiserver/utils"
)

// GetDispatchContext gets a dispatch context by issue key.
//
//	@Summary	Get dispatch context
//	@Id			DispatchHandlerGetDispatchContext
//	@Tags		DispatchHandler
//	@Accept		json
//	@Produce	json
//	@Param		issue_key	path		string	true	"Issue key"
//	@Success	200			{object}	dispatchapi.GetDispatchContextResponse
//	@Failure	default		{object}	base.BaseResponse
//	@Router		/api/v1/ticketmanager/dispatch/contexts/{issue_key} [get]
func (h *Handler) GetDispatchContext(c *gin.Context) {
	issueKey := c.Param("issue_key")
	dispatchContext, err := h.Dispatch.GetDispatchContext(c, issueKey)
	if err != nil {
		apiutils.Fail(c, err)
		return
	}
	apiutils.Success(c, &dispatchapi.GetDispatchContextResponse{Context: dispatchContext})
}
