package api

import (
	controller "dataservices/internal/controller/dataapi_control"

	"github.com/gin-gonic/gin"
)

func RouteDataApiControlAPI(router *gin.Engine) {
	router.Any(
		"/healthz", func(c *gin.Context) {
			c.Status(200)
		},
	)

	// Error
	router.Use(APIErrorJSONReporter())

	// Cors
	router.Use(Cors())

	// Metric
	router.Use(Metric())
	// Request Body Check
	router.Use(CheckRequestBodySize)

	api := router.Group("/inner/dataservice")
	{
		api.POST("/projects/:project_id/clusters/:cluster_id/privatelink/create", controller.HandleCreatePrivateLink)
		api.POST("/projects/:project_id/clusters/:cluster_id/privatelink/delete", controller.HandleDeletePrivateLink)
		api.POST("/apps/:app_id/custom-domains", controller.HandleCreateCustomDomain)
		api.POST("/apps/:app_id/custom-domains/:host/getState", controller.HandleGetCustomDomain)
		api.POST("/apps/:app_id/custom-domains/:host/delete", controller.HandleDeleteCustomDomain)
		api.POST("/apps/:app_id/dataapp-log/query", controller.UserExecutionLogQuery)
		api.POST("/apps/:app_id/dataapp-log/download", controller.SubmitDownloadDataAppLogTask)
		api.POST("/apps/:app_id/dataapp-metrics/query", controller.DataappMetricsQuery)
	}
}
