mirror of https://github.com/cloudreve/Cloudreve
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
package dbfs
|
|
|
|
import (
|
|
"context"
|
|
"github.com/cloudreve/Cloudreve/v4/ent"
|
|
"github.com/cloudreve/Cloudreve/v4/inventory"
|
|
"github.com/cloudreve/Cloudreve/v4/pkg/filemanager/fs"
|
|
"github.com/samber/lo"
|
|
)
|
|
|
|
func (f *DBFS) StaleEntities(ctx context.Context, entities ...int) ([]fs.Entity, error) {
|
|
res, err := f.fileClient.StaleEntities(ctx, entities...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return lo.Map(res, func(e *ent.Entity, i int) fs.Entity {
|
|
return fs.NewEntity(e)
|
|
}), nil
|
|
}
|
|
|
|
func (f *DBFS) AllFilesInTrashBin(ctx context.Context, opts ...fs.Option) (*fs.ListFileResult, error) {
|
|
o := newDbfsOption()
|
|
for _, opt := range opts {
|
|
o.apply(opt)
|
|
}
|
|
|
|
navigator, err := f.getNavigator(ctx, newTrashUri(""), NavigatorCapabilityListChildren)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
ctx = context.WithValue(ctx, inventory.LoadFilePublicMetadata{}, true)
|
|
children, err := navigator.Children(ctx, nil, &ListArgs{
|
|
Page: &inventory.PaginationArgs{
|
|
Page: o.FsOption.Page,
|
|
PageSize: o.PageSize,
|
|
OrderBy: o.OrderBy,
|
|
Order: inventory.OrderDirection(o.OrderDirection),
|
|
UseCursorPagination: o.useCursorPagination,
|
|
PageToken: o.pageToken,
|
|
},
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &fs.ListFileResult{
|
|
Files: lo.Map(children.Files, func(item *File, index int) fs.File {
|
|
return item
|
|
}),
|
|
Pagination: children.Pagination,
|
|
RecursionLimitReached: children.RecursionLimitReached,
|
|
}, nil
|
|
}
|