Nested Folders: Support listing nested folder children (#58566)

* Nested Folders: Support listing nested folder children

* Filter out subfolders with no permissions

* Apply suggestion from code review
This commit is contained in:
Sofia Papagiannaki
2022-12-19 10:52:04 +02:00
committed by GitHub
parent 0743c4eb87
commit b1ef5ab320
15 changed files with 181 additions and 88 deletions
+4 -26
View File
@@ -9,7 +9,7 @@ import (
)
type FakeService struct {
ExpectedFolders []*models.Folder
ExpectedFolders []*folder.Folder
ExpectedFolder *folder.Folder
ExpectedError error
}
@@ -20,10 +20,9 @@ func NewFakeService() *FakeService {
var _ folder.Service = (*FakeService)(nil)
func (s *FakeService) GetFolders(ctx context.Context, user *user.SignedInUser, orgID int64, limit int64, page int64) ([]*models.Folder, error) {
func (s *FakeService) GetChildren(ctx context.Context, cmd *folder.GetChildrenQuery) ([]*folder.Folder, error) {
return s.ExpectedFolders, s.ExpectedError
}
func (s *FakeService) Create(ctx context.Context, cmd *folder.CreateFolderCommand) (*folder.Folder, error) {
return s.ExpectedFolder, s.ExpectedError
}
@@ -46,32 +45,11 @@ func (s *FakeService) Move(ctx context.Context, cmd *folder.MoveFolderCommand) (
}
func (s *FakeService) GetParents(ctx context.Context, orgID int64, folderUID string) ([]*folder.Folder, error) {
return modelsToFolders(s.ExpectedFolders), s.ExpectedError
return s.ExpectedFolders, s.ExpectedError
}
func (s *FakeService) GetTree(ctx context.Context, orgID int64, folderUID string, depth int64) (map[string][]*folder.Folder, error) {
ret := make(map[string][]*folder.Folder)
ret[folderUID] = modelsToFolders(s.ExpectedFolders)
ret[folderUID] = s.ExpectedFolders
return ret, s.ExpectedError
}
// temporary helper until all Folder service methods are updated to use
// folder.Folder instead of model.Folder
func modelsToFolders(m []*models.Folder) []*folder.Folder {
if m == nil {
return nil
}
ret := make([]*folder.Folder, len(m))
for i, f := range m {
ret[i] = &folder.Folder{
ID: f.Id,
UID: f.Uid,
Title: f.Title,
Description: "", // model.Folder does not have a description
Created: f.Created,
Updated: f.Updated,
//UpdatedBy: f.UpdatedBy,
}
}
return ret
}