package controller

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

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

type SgeController struct {
	srv service.Service
}

func NewSgeController(store store.Factory) *SgeController {
	return &SgeController{
		srv: service.NewService(store),
	}
}

func (s *SgeController) Sync(c *gin.Context) {
	c.JSON(200, "start sync")

	go s.srv.Sge().Sync()
}

func (s *SgeController) DeptCompare(c *gin.Context) {
	c.JSON(200, "start dept compare")

	go s.srv.Sge().DeptCompare(c)
}

func (s *SgeController) CheckRegionEmail(c *gin.Context) {
	c.JSON(200, "start check region email")

	go s.srv.Sge().CheckRegionEmail(c)
}

func (s *SgeController) GroupOpen(c *gin.Context) {
	c.JSON(200, "start group open")

	go s.srv.Sge().GroupOpen()
}

func (s *SgeController) CheckGoogleUsers(c *gin.Context) {
	c.JSON(200, "start check google users")

	go s.srv.Sge().CheckGoogleUsers(c)
}

func (s *SgeController) SyncAuthing(c *gin.Context) {
	c.JSON(200, "start sync authing")

	go s.srv.Sge().SyncDeptUser()
}
