mirror of
				https://github.com/1Panel-dev/1Panel.git
				synced 2025-10-28 01:36:56 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			137 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
	
		
			5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package v1
 | |
| 
 | |
| import (
 | |
| 	"github.com/1Panel-dev/1Panel/backend/app/api/v1/helper"
 | |
| 	"github.com/1Panel-dev/1Panel/backend/app/dto"
 | |
| 	"github.com/1Panel-dev/1Panel/backend/constant"
 | |
| 	"github.com/1Panel-dev/1Panel/backend/global"
 | |
| 	"github.com/gin-gonic/gin"
 | |
| )
 | |
| 
 | |
| // @Tags Container Compose-template
 | |
| // @Summary Create compose template
 | |
| // @Description 创建容器编排模版
 | |
| // @Accept json
 | |
| // @Param request body dto.ComposeTemplateCreate true "request"
 | |
| // @Success 200
 | |
| // @Security ApiKeyAuth
 | |
| // @Router /containers/template [post]
 | |
| // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建 compose 模版 [name]","formatEN":"create compose template [name]"}
 | |
| func (b *BaseApi) CreateComposeTemplate(c *gin.Context) {
 | |
| 	var req dto.ComposeTemplateCreate
 | |
| 	if err := c.ShouldBindJSON(&req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrBadRequest, constant.ErrTypeInvalidParams, err)
 | |
| 		return
 | |
| 	}
 | |
| 	if err := global.VALID.Struct(req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrBadRequest, constant.ErrTypeInvalidParams, err)
 | |
| 		return
 | |
| 	}
 | |
| 	if err := composeTemplateService.Create(req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrInternalServer, constant.ErrTypeInternalServer, err)
 | |
| 		return
 | |
| 	}
 | |
| 	helper.SuccessWithData(c, nil)
 | |
| }
 | |
| 
 | |
| // @Tags Container Compose-template
 | |
| // @Summary Page compose templates
 | |
| // @Description 获取容器编排模版列表分页
 | |
| // @Accept json
 | |
| // @Param request body dto.SearchWithPage true "request"
 | |
| // @Produce json
 | |
| // @Success 200 {object} dto.PageResult
 | |
| // @Security ApiKeyAuth
 | |
| // @Router /containers/template/search [post]
 | |
| func (b *BaseApi) SearchComposeTemplate(c *gin.Context) {
 | |
| 	var req dto.SearchWithPage
 | |
| 	if err := c.ShouldBindJSON(&req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrBadRequest, constant.ErrTypeInvalidParams, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	total, list, err := composeTemplateService.SearchWithPage(req)
 | |
| 	if err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrInternalServer, constant.ErrTypeInternalServer, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	helper.SuccessWithData(c, dto.PageResult{
 | |
| 		Items: list,
 | |
| 		Total: total,
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // @Tags Container Compose-template
 | |
| // @Summary List compose templates
 | |
| // @Description 获取容器编排模版列表
 | |
| // @Produce json
 | |
| // @Success 200 {array} dto.ComposeTemplateInfo
 | |
| // @Security ApiKeyAuth
 | |
| // @Router /containers/template [get]
 | |
| func (b *BaseApi) ListComposeTemplate(c *gin.Context) {
 | |
| 	list, err := composeTemplateService.List()
 | |
| 	if err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrInternalServer, constant.ErrTypeInternalServer, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	helper.SuccessWithData(c, list)
 | |
| }
 | |
| 
 | |
| // @Tags Container Compose-template
 | |
| // @Summary Delete compose template
 | |
| // @Description 删除容器编排模版
 | |
| // @Accept json
 | |
| // @Param request body dto.BatchDelete true "request"
 | |
| // @Success 200
 | |
| // @Security ApiKeyAuth
 | |
| // @Router /containers/template/del [post]
 | |
| // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"compose_templates","output_column":"name","output_value":"names"}],"formatZH":"删除 compose 模版 [names]","formatEN":"delete compose template [names]"}
 | |
| func (b *BaseApi) DeleteComposeTemplate(c *gin.Context) {
 | |
| 	var req dto.BatchDeleteReq
 | |
| 	if err := c.ShouldBindJSON(&req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrBadRequest, constant.ErrTypeInvalidParams, err)
 | |
| 		return
 | |
| 	}
 | |
| 	if err := global.VALID.Struct(req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrBadRequest, constant.ErrTypeInvalidParams, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if err := composeTemplateService.Delete(req.Ids); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrInternalServer, constant.ErrTypeInternalServer, err)
 | |
| 		return
 | |
| 	}
 | |
| 	helper.SuccessWithData(c, nil)
 | |
| }
 | |
| 
 | |
| // @Tags Container Compose-template
 | |
| // @Summary Update compose template
 | |
| // @Description 更新容器编排模版
 | |
| // @Accept json
 | |
| // @Param request body dto.ComposeTemplateUpdate true "request"
 | |
| // @Success 200
 | |
| // @Security ApiKeyAuth
 | |
| // @Router /containers/template/update [post]
 | |
| // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"compose_templates","output_column":"name","output_value":"name"}],"formatZH":"更新 compose 模版 [name]","formatEN":"update compose template information [name]"}
 | |
| func (b *BaseApi) UpdateComposeTemplate(c *gin.Context) {
 | |
| 	var req dto.ComposeTemplateUpdate
 | |
| 	if err := c.ShouldBindJSON(&req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrBadRequest, constant.ErrTypeInvalidParams, err)
 | |
| 		return
 | |
| 	}
 | |
| 	if err := global.VALID.Struct(req); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrBadRequest, constant.ErrTypeInvalidParams, err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	upMap := make(map[string]interface{})
 | |
| 	upMap["content"] = req.Content
 | |
| 	upMap["description"] = req.Description
 | |
| 	if err := composeTemplateService.Update(req.ID, upMap); err != nil {
 | |
| 		helper.ErrorWithDetail(c, constant.CodeErrInternalServer, constant.ErrTypeInternalServer, err)
 | |
| 		return
 | |
| 	}
 | |
| 	helper.SuccessWithData(c, nil)
 | |
| }
 |