package sync

import (
	"github.com/gin-gonic/gin"

	sgeCtr "github.com/pingcap-inc/it-automation/internal/sync-google-email/controller"
	"github.com/pingcap-inc/it-automation/internal/sync-google-email/store/mysql"
)

func initRouter(g *gin.Engine) {
	installController(g)
}

func installController(g *gin.Engine) *gin.Engine {
	g.NoRoute(func(c *gin.Context) {
		c.JSON(404, "not found")
	})
	storeIns, _ := mysql.GetMySQLFactoryOr(nil)

	v1 := g.Group("/v1")
	{
		publicv1 := v1.Group("")
		sgeCtrl := sgeCtr.NewSgeController(storeIns)
		publicv1.POST("/authing-compare", sgeCtrl.Sync)
		publicv1.POST("/google-user-check", sgeCtrl.CheckGoogleUsers)
		publicv1.POST("/department-compare", sgeCtrl.DeptCompare)
		publicv1.POST("/group-open", sgeCtrl.GroupOpen)
		publicv1.POST("/sync-user", sgeCtrl.SyncAuthing)
		publicv1.POST("/check-office", sgeCtrl.CheckRegionEmail)

		lkfCtrl := sgeCtr.NewLarkFieldsController(storeIns)
		publicv1.POST("/lark-fields", lkfCtrl.LarkFields)
	}

	return g
}
