package port_scan

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

	srvv1 "github.com/pingcap-inc/security/internal/alert-server/service/v1"
	"github.com/pingcap-inc/security/internal/alert-server/store"

	"github.com/pingcap-inc/pchub/pkg/log"
	"github.com/pingcap-inc/pchub/pkg/util/ginres"
)

type PortScanController struct {
	srv srvv1.Service
}

func NewPortScanController(store store.Factory) *PortScanController {
	return &PortScanController{
		srv: srvv1.NewService(store),
	}
}

func (p *PortScanController) Scan(c *gin.Context) {
	log.L(c).Info("PortScanController.Scan function called.")

	ginres.WriteResponse(c, nil, "Start scan ports.")

	p.srv.PortScan().ScanPorts(c)
}
