mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-06-04 10:13:53 +08:00
133 lines
4.0 KiB
Go
133 lines
4.0 KiB
Go
package publish
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"github.com/APIParkLab/APIPark/module/publish"
|
|
"github.com/APIParkLab/APIPark/module/publish/dto"
|
|
"github.com/APIParkLab/APIPark/module/release"
|
|
dto2 "github.com/APIParkLab/APIPark/module/release/dto"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
var (
|
|
_ IPublishController = (*imlPublishController)(nil)
|
|
)
|
|
|
|
type imlPublishController struct {
|
|
publishModule publish.IPublishModule `autowired:""`
|
|
releaseModule release.IReleaseModule `autowired:""`
|
|
}
|
|
|
|
func (c *imlPublishController) ReleaseDo(ctx *gin.Context, serviceId string, input *dto.ApplyOnReleaseInput) (*dto.Publish, error) {
|
|
newReleaseId, err := c.releaseModule.Create(ctx, serviceId, &dto2.CreateInput{
|
|
Version: input.Version,
|
|
Remark: input.VersionRemark,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
apply, err := c.publishModule.Apply(ctx, serviceId, &dto.ApplyInput{
|
|
Release: newReleaseId,
|
|
Remark: input.PublishRemark,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = c.publishModule.Accept(ctx, serviceId, apply.Id, "")
|
|
if err != nil {
|
|
c.releaseModule.Delete(ctx, serviceId, newReleaseId)
|
|
return nil, err
|
|
}
|
|
err = c.publishModule.Publish(ctx, serviceId, apply.Id)
|
|
if err != nil {
|
|
c.releaseModule.Delete(ctx, serviceId, newReleaseId)
|
|
return nil, err
|
|
}
|
|
err = c.publishModule.Publish(ctx, serviceId, apply.Id)
|
|
if err != nil {
|
|
c.releaseModule.Delete(ctx, serviceId, newReleaseId)
|
|
return nil, err
|
|
}
|
|
return apply, err
|
|
}
|
|
|
|
func (c *imlPublishController) PublishStatuses(ctx *gin.Context, serviceId string, id string) ([]*dto.PublishStatus, error) {
|
|
return c.publishModule.PublishStatuses(ctx, serviceId, id)
|
|
}
|
|
|
|
func (c *imlPublishController) ApplyOnRelease(ctx *gin.Context, serviceId string, input *dto.ApplyOnReleaseInput) (*dto.Publish, error) {
|
|
newReleaseId, err := c.releaseModule.Create(ctx, serviceId, &dto2.CreateInput{
|
|
Version: input.Version,
|
|
Remark: input.VersionRemark,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
apply, err := c.publishModule.Apply(ctx, serviceId, &dto.ApplyInput{
|
|
Release: newReleaseId,
|
|
Remark: input.PublishRemark,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return apply, nil
|
|
}
|
|
|
|
func (c *imlPublishController) Apply(ctx *gin.Context, serviceId string, input *dto.ApplyInput) (*dto.Publish, error) {
|
|
apply, err := c.publishModule.Apply(ctx, serviceId, input)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return apply, nil
|
|
}
|
|
|
|
func (c *imlPublishController) CheckPublish(ctx *gin.Context, serviceId string, releaseId string) (*dto.DiffOut, error) {
|
|
return c.publishModule.CheckPublish(ctx, serviceId, releaseId)
|
|
}
|
|
|
|
func (c *imlPublishController) Close(ctx *gin.Context, serviceId string, id string) error {
|
|
err := c.publishModule.Stop(ctx, serviceId, id)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (c *imlPublishController) Stop(ctx *gin.Context, serviceId string, id string) error {
|
|
return c.publishModule.Stop(ctx, serviceId, id)
|
|
}
|
|
|
|
func (c *imlPublishController) Refuse(ctx *gin.Context, serviceId string, id string, input *dto.Comments) error {
|
|
return c.publishModule.Refuse(ctx, serviceId, id, input.Comments)
|
|
}
|
|
|
|
func (c *imlPublishController) Accept(ctx *gin.Context, serviceId string, id string, input *dto.Comments) error {
|
|
return c.publishModule.Accept(ctx, serviceId, id, input.Comments)
|
|
}
|
|
|
|
func (c *imlPublishController) Publish(ctx *gin.Context, serviceId string, id string) error {
|
|
return c.publishModule.Publish(ctx, serviceId, id)
|
|
}
|
|
|
|
func (c *imlPublishController) ListPage(ctx *gin.Context, serviceId string, page, pageSize string) ([]*dto.Publish, int, int, int64, error) {
|
|
pageNum, _ := strconv.Atoi(page)
|
|
pageSizeNum, _ := strconv.Atoi(pageSize)
|
|
if pageNum < 1 {
|
|
pageNum = 1
|
|
}
|
|
if pageSizeNum <= 0 {
|
|
pageSizeNum = 50
|
|
}
|
|
list, total, err := c.publishModule.List(ctx, serviceId, pageNum, pageSizeNum)
|
|
if err != nil {
|
|
return nil, 0, 0, 0, err
|
|
}
|
|
|
|
return list, pageNum, pageSizeNum, total, nil
|
|
}
|
|
|
|
func (c *imlPublishController) Detail(ctx *gin.Context, serviceId string, id string) (*dto.PublishDetail, error) {
|
|
return c.publishModule.Detail(ctx, serviceId, id)
|
|
}
|