200 lines
5.8 KiB
Go
200 lines
5.8 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/viletyy/yolk/convert"
|
|
"gitlink.org.cn/Gitlink/account-server/global"
|
|
"gitlink.org.cn/Gitlink/account-server/internal/service"
|
|
"gitlink.org.cn/Gitlink/account-server/pkg/app"
|
|
"gitlink.org.cn/Gitlink/account-server/pkg/errcode"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Template struct{}
|
|
|
|
func NewTemplate() Template {
|
|
return Template{}
|
|
}
|
|
|
|
// @Summary 数据列表
|
|
// @Tags templates
|
|
// @Description 一段描述
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param page query int false "页码"
|
|
// @Param page_size query int false "每页数量"
|
|
// @Param name query string false "名称搜索" maxlength(100)
|
|
// @Param uuid query int false "uuid搜索"
|
|
// @Success 200 {object} model.Template "请求成功"
|
|
// @Router /templates [get]
|
|
func (template Template) List(c *gin.Context) {
|
|
param := service.TemplateListRequest{}
|
|
response := app.NewResponse(c)
|
|
valid, errs := app.BindAndValid(c, ¶m)
|
|
if !valid {
|
|
global.GO_LOG.Sugar().Errorf("app.BindAndValid errs: %v", errs)
|
|
response.ToResponseErrors(errs.Errors())
|
|
return
|
|
}
|
|
|
|
svc := service.New(c.Request.Context())
|
|
paper := app.Pager{Page: app.GetPage(c), PageSize: app.GetPageSize(c)}
|
|
total, err := svc.CountTemplate(&service.CountTemplateRequest{Name: param.Name, Uuid: param.Uuid})
|
|
if err != nil {
|
|
global.GO_LOG.Sugar().Errorf("svc.CountTemplate err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorCountFail)
|
|
return
|
|
}
|
|
templates, err := svc.GetTemplateList(¶m, &paper)
|
|
if err != nil {
|
|
global.GO_LOG.Sugar().Errorf("svc.GetTemplateList err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorGetListFail)
|
|
return
|
|
}
|
|
|
|
response.ToResponseList(templates, total)
|
|
}
|
|
|
|
// @Summary 获取单个模板
|
|
// @Tags templates
|
|
// @Description 这是一段描述
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param id path int true "ID"
|
|
// @Success 200 {object} model.Template "请求成功"
|
|
// @Router /templates/{id} [get]
|
|
func (template Template) Get(c *gin.Context) {
|
|
templateID, err := convert.StrTo(c.Param("id")).Int64()
|
|
response := app.NewResponse(c)
|
|
if err != nil {
|
|
global.GO_LOG.Sugar().Errorf("convert.StrTo err: %v", err)
|
|
response.ToErrorResponse(errcode.InvalidParams)
|
|
return
|
|
}
|
|
param := service.TemplateRequest{ID: templateID}
|
|
|
|
valid, errs := app.BindAndValid(c, ¶m)
|
|
if !valid {
|
|
global.GO_LOG.Sugar().Errorf("app.BindAndValid errs: %v", errs)
|
|
response.ToResponseErrors(errs.Errors())
|
|
return
|
|
}
|
|
|
|
svc := service.New(c.Request.Context())
|
|
dbTemplate, err := svc.GetTemplate(¶m)
|
|
if err != nil {
|
|
global.GO_LOG.Sugar().Errorf("svc.GetTemplate err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorGetFail)
|
|
return
|
|
}
|
|
|
|
response.ToResponse(dbTemplate)
|
|
}
|
|
|
|
// @Summary 新增一条模板数据
|
|
// @Tags templates
|
|
// @Description
|
|
// @Accept mpfd
|
|
// @Produce json
|
|
// @Param name formData string true "名称" minlength(1) maxlength(100)
|
|
// @Param uuid formData int false "uuid"
|
|
// @Success 200 {object} model.Template "请求成功"
|
|
// @Router /templates [post]
|
|
func (template Template) Create(c *gin.Context) {
|
|
param := service.CreateTemplateRequest{}
|
|
response := app.NewResponse(c)
|
|
valid, errs := app.BindAndValid(c, ¶m)
|
|
if !valid {
|
|
global.GO_LOG.Sugar().Errorf("app.BindAndValid errs: %v", errs)
|
|
response.ToResponseErrors(errs.Errors())
|
|
return
|
|
}
|
|
|
|
svc := service.New(c.Request.Context())
|
|
dbTemplate, err := svc.CreateTemplate(¶m)
|
|
if err != nil {
|
|
global.GO_LOG.Sugar().Errorf("svc.CreateTemplate err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorCreateFail)
|
|
return
|
|
}
|
|
|
|
response.ToResponse(dbTemplate)
|
|
}
|
|
|
|
// @Summary 修改模板数据
|
|
// @Tags templates
|
|
// @Description
|
|
// @Accept mpfd
|
|
// @Produce json
|
|
// @Param id path int true "ID"
|
|
// @Param name formData string false "名称" minlength(1) maxlength(100)
|
|
// @Param uuid formData int false "uuid"
|
|
// @Success 200 {object} model.Template "请求成功"
|
|
// @Router /templates/{id} [patch]
|
|
func (template Template) Update(c *gin.Context) {
|
|
templateID, err := convert.StrTo(c.Param("id")).Int64()
|
|
response := app.NewResponse(c)
|
|
if err != nil {
|
|
global.GO_LOG.Sugar().Errorf("convert.StrTo err: %v", err)
|
|
response.ToErrorResponse(errcode.InvalidParams)
|
|
return
|
|
}
|
|
param := service.UpdateTemplateRequest{ID: templateID}
|
|
valid, errs := app.BindAndValid(c, ¶m)
|
|
if !valid {
|
|
global.GO_LOG.Sugar().Errorf("app.BindAndValid errs: %v", errs)
|
|
response.ToResponseErrors(errs)
|
|
return
|
|
}
|
|
svc := service.New(c.Request.Context())
|
|
dbTemplate, err := svc.UpdateTemplate(¶m)
|
|
if err != nil {
|
|
if err == gorm.ErrRecordNotFound {
|
|
global.GO_LOG.Sugar().Errorf("svc.UpdateTemplate err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorGetFail)
|
|
return
|
|
} else {
|
|
global.GO_LOG.Sugar().Errorf("svc.UpdateTemplate err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorUpdateFail)
|
|
return
|
|
}
|
|
}
|
|
|
|
response.ToResponse(dbTemplate)
|
|
}
|
|
|
|
// @Summary 删除一条数据
|
|
// @Tags templates
|
|
// @Description
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param id path int true "ID"
|
|
// @Success 200 {object} model.Template "请求成功"
|
|
// @Router /templates/{id} [delete]
|
|
func (template Template) Delete(c *gin.Context) {
|
|
templateId, err := convert.StrTo(c.Param("id")).Int64()
|
|
response := app.NewResponse(c)
|
|
if err != nil {
|
|
global.GO_LOG.Sugar().Errorf("convert.StrTo err: %v", err)
|
|
response.ToErrorResponse(errcode.InvalidParams)
|
|
return
|
|
}
|
|
param := service.DeleteTemplateRequest{ID: templateId}
|
|
svc := service.New(c.Request.Context())
|
|
dbTemplate, err := svc.DeleteTemplate(¶m)
|
|
if err != nil {
|
|
if err == gorm.ErrRecordNotFound {
|
|
global.GO_LOG.Sugar().Errorf("svc.DeleteTemplate err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorGetFail)
|
|
return
|
|
} else {
|
|
global.GO_LOG.Sugar().Errorf("svc.DeleteTemplate err: %v", err)
|
|
response.ToErrorResponse(errcode.ErrorDeleteFail)
|
|
return
|
|
}
|
|
}
|
|
|
|
errcode.Success.Data = dbTemplate
|
|
response.ToErrorResponse(errcode.Success)
|
|
}
|