42 lines
1.5 KiB
Go
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
|
|
}
|