package api

import (
	"net/http"
	"net/http/httputil"
	httpurl "net/url"

	"github.com/gin-gonic/gin"
	"github.com/tidbcloud/tiinf/monitor/tilog"
	"go.uber.org/zap"
)

func proxy(c *gin.Context, host string,

// directorF func(r *http.Request) *http.Request,
// modifyResponse func(*http.Response) error,
// errorHandler func(http.ResponseWriter, *http.Request, error),
) {
	url := &httpurl.URL{
		Scheme: "http",
		Host:   host,
	}
	proxy := httputil.NewSingleHostReverseProxy(url)
	originDirector := proxy.Director
	director := func(req *http.Request) {
		originDirector(req)
	}
	// proxy.ModifyResponse = modifyResponse

	tilog.Info(c.Request.Context(), "transparently forwarded HTTP request",
		zap.String("path", c.Request.URL.Path), zap.String("method", c.Request.Method))
	proxy.Director = director
	proxy.ServeHTTP(c.Writer, c.Request)
	// delete cors header
}
