Files
backend/internal/service/knowledge_base_service/convert.go
T
2026-07-15 22:42:31 +08:00

42 lines
1.5 KiB
Go

package knowledge_base_service
import (
"github.com/XingfenD/yoresee_doc/internal/dto"
"github.com/XingfenD/yoresee_doc/internal/model"
"github.com/XingfenD/yoresee_doc/internal/repository/knowledge_base_repo"
internal_dto "github.com/XingfenD/yoresee_doc/internal/service/dto"
"github.com/XingfenD/yoresee_doc/internal/status"
)
func buildKnowledgeBaseListReqFromExternal(req *dto.KnowledgeBaseListByExternalRequest, creatorID *int64) *internal_dto.KnowledgeBaseListReq {
if req == nil {
return nil
}
return &internal_dto.KnowledgeBaseListReq{
CreatorID: creatorID,
FilterArgs: req.FilterArgs,
SortArgs: req.SortArgs,
Pagination: req.Pagination,
}
}
func (s *KnowledgeBaseService) buildListKnowledgeBaseOperation(req *internal_dto.KnowledgeBaseListReq) (*knowledge_base_repo.ListKnowledgeBaseOperation, error) {
if s == nil || s.knowledgeBaseRepo == nil {
return nil, status.StatusServiceInternalError
}
if req == nil {
return nil, status.StatusInternalParamsError
}
op := s.knowledgeBaseRepo.List(&model.KnowledgeBase{}).WithCreatorID(req.CreatorID)
if req.FilterArgs != nil {
op = op.WithIsPublic(req.FilterArgs.IsPublic).
WithNameKeyword(req.FilterArgs.NameKeyword).
WithCreateTimeRange(req.FilterArgs.CreateTimeRangeStart, req.FilterArgs.CreateTimeRangeEnd).
WithUpdateTimeRange(req.FilterArgs.UpdateTimeRangeStart, req.FilterArgs.UpdateTimeRangeEnd)
}
op = op.WithSort(req.SortArgs.Field, req.SortArgs.Desc).
WithPagination(req.Pagination.Page, req.Pagination.PageSize)
return op, nil
}