package middleware

import (
	"strconv"

	"github.com/labstack/echo/v4"

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

const DryRunQueryKey = "dryrun"

// SupportDryRun indicates whether the API support dry run.
var SupportDryRun = func(next echo.HandlerFunc) echo.HandlerFunc {
	return func(c echo.Context) error {
		ctx := c.(utils.Context)
		if dryrun, _ := strconv.ParseBool(ctx.QueryParam(DryRunQueryKey)); dryrun {
			ctx.SetDryRun(true)
		}
		return next(c)
	}
}
