Files
MonkeyCode/backend/internal/security/handler/http/v1/security.go
2025-08-07 22:04:00 +08:00

72 lines
1.8 KiB
Go

package v1
import (
"github.com/GoYoko/web"
"github.com/chaitin/MonkeyCode/backend/domain"
"github.com/chaitin/MonkeyCode/backend/internal/middleware"
)
type SecurityHandler struct {
usecase domain.SecurityScanningUsecase
}
func NewSecurityHandler(
w *web.Web,
usecase domain.SecurityScanningUsecase,
auth *middleware.AuthMiddleware,
active *middleware.ActiveMiddleware,
) *SecurityHandler {
s := &SecurityHandler{
usecase: usecase,
}
g := w.Group("/api/v1/security/scanning")
g.Use(auth.Auth(), active.Active("admin"))
g.GET("", web.BindHandler(s.List))
g.GET("/detail", web.BaseHandler(s.Detail))
return s
}
// List 获取扫描结果
//
// @Tags Security Scanning
// @Summary 获取扫描结果
// @Description 获取扫描结果
// @ID security-scanning-list
// @Accept json
// @Produce json
// @Param page query domain.ListSecurityScanningReq true "参数"
// @Success 200 {object} web.Resp{data=domain.ListSecurityScanningResp}
// @Failure 401 {object} string
// @Router /api/v1/security/scanning [get]
func (s *SecurityHandler) List(c *web.Context, req domain.ListSecurityScanningReq) error {
resp, err := s.usecase.List(c.Request().Context(), req)
if err != nil {
return err
}
return c.Success(resp)
}
// Detail 获取扫描风险详情
//
// @Tags Security Scanning
// @Summary 获取扫描风险详情
// @Description 获取扫描风险详情
// @ID security-scanning-detail
// @Accept json
// @Produce json
// @Param id query string true "扫描任务id"
// @Success 200 {object} web.Resp{data=[]domain.SecurityScanningRiskDetail}
// @Failure 401 {object} string
// @Router /api/v1/security/scanning/detail [get]
func (s *SecurityHandler) Detail(c *web.Context) error {
resp, err := s.usecase.Detail(c.Request().Context(), "", c.QueryParam("id"))
if err != nil {
return err
}
return c.Success(resp)
}