DeployHelper/internal/handler/sys_deploy_file_handler.go

121 lines
4.1 KiB
Go

package handler
import (
"ego/internal/service"
"ego/pkg/logger"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
// SysDeployFileHandler 部署文件处理器
type SysDeployFileHandler struct {
deployFileService *service.SysDeployFileService
}
// NewSysDeployFileHandler 构建部署文件处理器
func NewSysDeployFileHandler(deployFileService *service.SysDeployFileService) *SysDeployFileHandler {
return &SysDeployFileHandler{
deployFileService: deployFileService,
}
}
// Create 创建部署文件记录
// @Summary 创建部署文件记录
// @Description 创建新的部署文件记录
// @Tags 部署文件管理
// @Accept json
// @Produce json
// @Param deployFile body model.SysDeployFile true "部署文件信息"
// @Success 200 {object} serializer.Response
// @Router /deploy-files [post]
func (h *SysDeployFileHandler) Create(c *gin.Context) {
logger.Info(c, "创建部署文件记录")
c.JSON(200, h.deployFileService.Create(c))
}
// GetByID 根据ID获取部署文件记录
// @Summary 获取部署文件记录
// @Description 根据ID获取部署文件记录详情
// @Tags 部署文件管理
// @Accept json
// @Produce json
// @Param id path string true "文件ID"
// @Success 200 {object} serializer.Response
// @Router /deploy-files/{id} [get]
func (h *SysDeployFileHandler) GetByID(c *gin.Context) {
logger.Info(c, "获取部署文件记录", zap.String("id", c.Param("id")))
c.JSON(200, h.deployFileService.GetByID(c))
}
// UpdateByID 根据ID更新部署文件记录
// @Summary 更新部署文件记录
// @Description 根据ID更新部署文件记录
// @Tags 部署文件管理
// @Accept json
// @Produce json
// @Param id path string true "文件ID"
// @Param deployFile body model.SysDeployFile true "部署文件信息"
// @Success 200 {object} serializer.Response
// @Router /deploy-files/{id} [put]
func (h *SysDeployFileHandler) UpdateByID(c *gin.Context) {
logger.Info(c, "更新部署文件记录", zap.String("id", c.Param("id")))
c.JSON(200, h.deployFileService.UpdateByID(c))
}
// DeleteByID 根据ID删除部署文件记录
// @Summary 删除部署文件记录
// @Description 根据ID删除部署文件记录
// @Tags 部署文件管理
// @Accept json
// @Produce json
// @Param id path string true "文件ID"
// @Success 200 {object} serializer.Response
// @Router /deploy-files/{id} [delete]
func (h *SysDeployFileHandler) DeleteByID(c *gin.Context) {
logger.Info(c, "删除部署文件记录", zap.String("id", c.Param("id")))
c.JSON(200, h.deployFileService.DeleteByID(c))
}
// GetByCondition 条件查询部署文件记录
// @Summary 条件查询部署文件记录
// @Description 根据条件分页查询部署文件记录
// @Tags 部署文件管理
// @Accept json
// @Produce json
// @Param params query types.Params true "查询参数"
// @Success 200 {object} serializer.Response
// @Router /deploy-files [get]
func (h *SysDeployFileHandler) GetByCondition(c *gin.Context) {
logger.Info(c, "条件查询部署文件记录")
c.JSON(200, h.deployFileService.GetByCondition(c))
}
// GetByParentID 根据项目ID获取文件列表
// @Summary 获取项目文件列表
// @Description 根据项目ID获取关联的文件列表
// @Tags 部署文件管理
// @Accept json
// @Produce json
// @Param parentId path string true "项目ID"
// @Success 200 {object} serializer.Response
// @Router /deploy-files/parent/{parentId} [get]
func (h *SysDeployFileHandler) GetByParentID(c *gin.Context) {
logger.Info(c, "根据项目ID获取文件列表", zap.String("parentId", c.Param("parentId")))
c.JSON(200, h.deployFileService.GetByParentID(c))
}
// SetActiveFile 设置活跃文件
// @Summary 设置活跃文件
// @Description 将指定文件设置为使用中状态,其他文件设为未使用状态
// @Tags 部署文件管理
// @Accept json
// @Produce json
// @Param id path string true "文件ID"
// @Success 200 {object} serializer.Response
// @Router /deploy-files/{id}/active [put]
func (h *SysDeployFileHandler) SetActiveFile(c *gin.Context) {
logger.Info(c, "设置活跃文件", zap.String("id", c.Param("id")))
c.JSON(200, h.deployFileService.SetActiveFile(c))
}