package middleware

import (
	"github.com/labstack/echo/v4"

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

// InternalAPI can only be regirestered after `AuthMW`.
// Only request that with `tcms-api-access-token` can pass this middleware.
var InternalAPI = func(next echo.HandlerFunc) echo.HandlerFunc {
	return func(c echo.Context) error {
		u := c.(utils.Context).User()

		// The UserID in `tcms-api-access-token` should be 0.
		if u != nil && u.ID == 0 {
			return next(c)
		}
		return echo.ErrForbidden
	}
}
