Files
APIPark/module/api-doc/api_doc.go
T
2024-08-30 09:55:56 +08:00

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
}