package activity_file

import (
	"github.com/gin-gonic/gin"
	"go.uber.org/fx"

	"github.com/pingcap-inc/clinic/pkg/config"
)

func RegisterRouter(v1Router *gin.RouterGroup, api *DiagnosisActivityAPI) {
	// InitDiagnosisAPI(v1Router, api)
	r := v1Router.Group("/activityhub")
	r.GET("/file/download", api.DownloadFileGinHandler)
	r.GET("/file/view", api.ViewFileGinHandler)
}

var extractBucket = func(cfg *config.Config) string {
	return cfg.ActivityFileConfig.Bucket
}

var extractRegion = func(cfg *config.Config) string {
	if cfg.ActivityFileConfig.Region == "" {
		return "us-west-2"
	}
	return cfg.ActivityFileConfig.Region
}

var Module = fx.Options(
	fx.Provide(fx.Annotate(extractBucket, fx.ResultTags(`name:"diagnosis_activity_bucket"`))),
	fx.Provide(fx.Annotate(extractRegion, fx.ResultTags(`name:"diagnosis_activity_bucket_region"`))),
	fx.Provide(fx.Annotate(NewDiagnosisActivityAPI, fx.ParamTags(``, `name:"diagnosis_activity_bucket"`, `name:"diagnosis_activity_bucket_region"`))),
	fx.Invoke(RegisterRouter),
)
