mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-06-04 10:13:53 +08:00
59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package api_doc
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
api_doc_dto "github.com/APIParkLab/APIPark/module/api-doc/dto"
|
|
api_doc "github.com/APIParkLab/APIPark/service/api-doc"
|
|
"github.com/APIParkLab/APIPark/service/service"
|
|
|
|
"github.com/eolinker/go-common/auto"
|
|
"github.com/google/uuid"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
var _ IAPIDocModule = (*imlAPIDocModule)(nil)
|
|
|
|
type imlAPIDocModule struct {
|
|
apiDocService api_doc.IAPIDocService `autowired:""`
|
|
serviceService service.IServiceService `autowired:""`
|
|
}
|
|
|
|
func (i *imlAPIDocModule) UpdateDoc(ctx context.Context, serviceId string, input *api_doc_dto.UpdateDoc) (*api_doc_dto.ApiDocDetail, error) {
|
|
_, err := i.serviceService.Get(ctx, serviceId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if input.Id == "" {
|
|
input.Id = uuid.New().String()
|
|
}
|
|
err = i.apiDocService.UpdateDoc(ctx, serviceId, &api_doc.UpdateDoc{
|
|
ID: input.Id,
|
|
Service: serviceId,
|
|
Content: input.Content,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return i.GetDoc(ctx, serviceId)
|
|
}
|
|
|
|
func (i *imlAPIDocModule) GetDoc(ctx context.Context, serviceId string) (*api_doc_dto.ApiDocDetail, error) {
|
|
_, err := i.serviceService.Get(ctx, serviceId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
info, err := i.apiDocService.GetDoc(ctx, serviceId)
|
|
if err != nil {
|
|
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return nil, err
|
|
}
|
|
return nil, nil
|
|
}
|
|
return &api_doc_dto.ApiDocDetail{
|
|
Content: info.Content,
|
|
Updater: info.Updater,
|
|
UpdateTime: auto.TimeLabel(info.UpdateAt),
|
|
}, nil
|
|
}
|