chore: sync local changes (2026-03-12)
This commit is contained in:
@@ -1,199 +1,199 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"mengyaping-backend/models"
|
||||
"mengyaping-backend/services"
|
||||
)
|
||||
|
||||
// WebsiteHandler 网站处理器
|
||||
type WebsiteHandler struct {
|
||||
websiteService *services.WebsiteService
|
||||
monitorService *services.MonitorService
|
||||
}
|
||||
|
||||
// NewWebsiteHandler 创建网站处理器
|
||||
func NewWebsiteHandler() *WebsiteHandler {
|
||||
return &WebsiteHandler{
|
||||
websiteService: services.NewWebsiteService(),
|
||||
monitorService: services.GetMonitorService(),
|
||||
}
|
||||
}
|
||||
|
||||
// GetWebsites 获取所有网站状态
|
||||
func (h *WebsiteHandler) GetWebsites(c *gin.Context) {
|
||||
statuses := h.monitorService.GetAllWebsiteStatuses()
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "success",
|
||||
Data: statuses,
|
||||
})
|
||||
}
|
||||
|
||||
// GetWebsite 获取单个网站状态
|
||||
func (h *WebsiteHandler) GetWebsite(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
status := h.monitorService.GetWebsiteStatus(id)
|
||||
if status == nil {
|
||||
c.JSON(http.StatusNotFound, models.APIResponse{
|
||||
Code: 404,
|
||||
Message: "网站不存在",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "success",
|
||||
Data: status,
|
||||
})
|
||||
}
|
||||
|
||||
// CreateWebsite 创建网站
|
||||
func (h *WebsiteHandler) CreateWebsite(c *gin.Context) {
|
||||
var req models.CreateWebsiteRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, models.APIResponse{
|
||||
Code: 400,
|
||||
Message: "参数错误: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
website, err := h.websiteService.CreateWebsite(req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "创建失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "创建成功",
|
||||
Data: website,
|
||||
})
|
||||
}
|
||||
|
||||
// UpdateWebsite 更新网站
|
||||
func (h *WebsiteHandler) UpdateWebsite(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
var req models.UpdateWebsiteRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, models.APIResponse{
|
||||
Code: 400,
|
||||
Message: "参数错误: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
website, err := h.websiteService.UpdateWebsite(id, req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "更新失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if website == nil {
|
||||
c.JSON(http.StatusNotFound, models.APIResponse{
|
||||
Code: 404,
|
||||
Message: "网站不存在",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "更新成功",
|
||||
Data: website,
|
||||
})
|
||||
}
|
||||
|
||||
// DeleteWebsite 删除网站
|
||||
func (h *WebsiteHandler) DeleteWebsite(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
if err := h.websiteService.DeleteWebsite(id); err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "删除失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "删除成功",
|
||||
})
|
||||
}
|
||||
|
||||
// CheckWebsiteNow 立即检测网站
|
||||
func (h *WebsiteHandler) CheckWebsiteNow(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
website := h.websiteService.GetWebsite(id)
|
||||
if website == nil {
|
||||
c.JSON(http.StatusNotFound, models.APIResponse{
|
||||
Code: 404,
|
||||
Message: "网站不存在",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
h.monitorService.CheckWebsiteNow(id)
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "检测任务已提交",
|
||||
})
|
||||
}
|
||||
|
||||
// GetGroups 获取所有分组
|
||||
func (h *WebsiteHandler) GetGroups(c *gin.Context) {
|
||||
groups := h.websiteService.GetGroups()
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "success",
|
||||
Data: groups,
|
||||
})
|
||||
}
|
||||
|
||||
// AddGroup 添加分组
|
||||
func (h *WebsiteHandler) AddGroup(c *gin.Context) {
|
||||
var req struct {
|
||||
Name string `json:"name" binding:"required"`
|
||||
}
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, models.APIResponse{
|
||||
Code: 400,
|
||||
Message: "参数错误: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
group, err := h.websiteService.AddGroup(req.Name)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "添加失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "添加成功",
|
||||
Data: group,
|
||||
})
|
||||
}
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"mengyaping-backend/models"
|
||||
"mengyaping-backend/services"
|
||||
)
|
||||
|
||||
// WebsiteHandler 网站处理器
|
||||
type WebsiteHandler struct {
|
||||
websiteService *services.WebsiteService
|
||||
monitorService *services.MonitorService
|
||||
}
|
||||
|
||||
// NewWebsiteHandler 创建网站处理器
|
||||
func NewWebsiteHandler() *WebsiteHandler {
|
||||
return &WebsiteHandler{
|
||||
websiteService: services.NewWebsiteService(),
|
||||
monitorService: services.GetMonitorService(),
|
||||
}
|
||||
}
|
||||
|
||||
// GetWebsites 获取所有网站状态
|
||||
func (h *WebsiteHandler) GetWebsites(c *gin.Context) {
|
||||
statuses := h.monitorService.GetAllWebsiteStatuses()
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "success",
|
||||
Data: statuses,
|
||||
})
|
||||
}
|
||||
|
||||
// GetWebsite 获取单个网站状态
|
||||
func (h *WebsiteHandler) GetWebsite(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
status := h.monitorService.GetWebsiteStatus(id)
|
||||
if status == nil {
|
||||
c.JSON(http.StatusNotFound, models.APIResponse{
|
||||
Code: 404,
|
||||
Message: "网站不存在",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "success",
|
||||
Data: status,
|
||||
})
|
||||
}
|
||||
|
||||
// CreateWebsite 创建网站
|
||||
func (h *WebsiteHandler) CreateWebsite(c *gin.Context) {
|
||||
var req models.CreateWebsiteRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, models.APIResponse{
|
||||
Code: 400,
|
||||
Message: "参数错误: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
website, err := h.websiteService.CreateWebsite(req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "创建失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "创建成功",
|
||||
Data: website,
|
||||
})
|
||||
}
|
||||
|
||||
// UpdateWebsite 更新网站
|
||||
func (h *WebsiteHandler) UpdateWebsite(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
var req models.UpdateWebsiteRequest
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, models.APIResponse{
|
||||
Code: 400,
|
||||
Message: "参数错误: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
website, err := h.websiteService.UpdateWebsite(id, req)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "更新失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
if website == nil {
|
||||
c.JSON(http.StatusNotFound, models.APIResponse{
|
||||
Code: 404,
|
||||
Message: "网站不存在",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "更新成功",
|
||||
Data: website,
|
||||
})
|
||||
}
|
||||
|
||||
// DeleteWebsite 删除网站
|
||||
func (h *WebsiteHandler) DeleteWebsite(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
if err := h.websiteService.DeleteWebsite(id); err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "删除失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "删除成功",
|
||||
})
|
||||
}
|
||||
|
||||
// CheckWebsiteNow 立即检测网站
|
||||
func (h *WebsiteHandler) CheckWebsiteNow(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
website := h.websiteService.GetWebsite(id)
|
||||
if website == nil {
|
||||
c.JSON(http.StatusNotFound, models.APIResponse{
|
||||
Code: 404,
|
||||
Message: "网站不存在",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
h.monitorService.CheckWebsiteNow(id)
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "检测任务已提交",
|
||||
})
|
||||
}
|
||||
|
||||
// GetGroups 获取所有分组
|
||||
func (h *WebsiteHandler) GetGroups(c *gin.Context) {
|
||||
groups := h.websiteService.GetGroups()
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "success",
|
||||
Data: groups,
|
||||
})
|
||||
}
|
||||
|
||||
// AddGroup 添加分组
|
||||
func (h *WebsiteHandler) AddGroup(c *gin.Context) {
|
||||
var req struct {
|
||||
Name string `json:"name" binding:"required"`
|
||||
}
|
||||
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, models.APIResponse{
|
||||
Code: 400,
|
||||
Message: "参数错误: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
group, err := h.websiteService.AddGroup(req.Name)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, models.APIResponse{
|
||||
Code: 500,
|
||||
Message: "添加失败: " + err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, models.APIResponse{
|
||||
Code: 0,
|
||||
Message: "添加成功",
|
||||
Data: group,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user