tree

package
v0.0.22 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Blobstore

type Blobstore interface {
	Upload(key string, reader io.Reader) error
	Download(key string) (io.ReadCloser, error)
	Delete(key string) error
}

Blobstore defines an interface for storing blobs in a blobstore

type PathLookup

type PathLookup interface {
	NodeFromPath(ctx context.Context, fn string, followReferences bool) (*node.Node, error)
	NodeFromID(ctx context.Context, id *provider.ResourceId) (n *node.Node, err error)
	RootNode(ctx context.Context) (node *node.Node, err error)
	HomeOrRootNode(ctx context.Context) (node *node.Node, err error)

	InternalRoot() string
	InternalPath(ID string) string
	Path(ctx context.Context, n *node.Node) (path string, err error)
	ShareFolder() string
}

PathLookup defines the interface for the lookup component

type PermissionCheckFunc

type PermissionCheckFunc func(rp *provider.ResourcePermissions) bool

PermissionCheckFunc defined a function used to check resource permissions

type Tree

type Tree struct {
	// contains filtered or unexported fields
}

Tree manages a hierarchical tree

func New

func New(root string, tta bool, tsa bool, lu PathLookup, bs Blobstore) *Tree

New returns a new instance of Tree

func (*Tree) CreateDir

func (t *Tree) CreateDir(ctx context.Context, n *node.Node) (err error)

CreateDir creates a new directory entry in the tree

func (*Tree) Delete

func (t *Tree) Delete(ctx context.Context, n *node.Node) (err error)

Delete deletes a node in the tree by moving it to the trash

func (*Tree) DeleteBlob

func (t *Tree) DeleteBlob(key string) error

DeleteBlob deletes a blob from the blobstore

func (*Tree) GetMD

func (t *Tree) GetMD(ctx context.Context, n *node.Node) (os.FileInfo, error)

GetMD returns the metadata of a node in the tree

func (*Tree) ListFolder

func (t *Tree) ListFolder(ctx context.Context, n *node.Node) ([]*node.Node, error)

ListFolder lists the content of a folder node

func (*Tree) Move

func (t *Tree) Move(ctx context.Context, oldNode *node.Node, newNode *node.Node) (err error)

Move replaces the target with the source

func (*Tree) Propagate

func (t *Tree) Propagate(ctx context.Context, n *node.Node) (err error)

Propagate propagates changes to the root of the tree

func (*Tree) PurgeRecycleItemFunc

func (t *Tree) PurgeRecycleItemFunc(ctx context.Context, key string, path string) (*node.Node, func() error, error)

PurgeRecycleItemFunc returns a node and a function to purge it from the trash

func (*Tree) ReadBlob

func (t *Tree) ReadBlob(key string) (io.ReadCloser, error)

ReadBlob reads a blob from the blobstore

func (*Tree) RestoreRecycleItemFunc

func (t *Tree) RestoreRecycleItemFunc(ctx context.Context, key, trashPath, restorePath string) (*node.Node, *node.Node, func() error, error)

RestoreRecycleItemFunc returns a node and a function to restore it from the trash.

func (*Tree) Setup

func (t *Tree) Setup(owner *userpb.UserId, propagateToRoot bool) error

Setup prepares the tree structure

func (*Tree) WriteBlob

func (t *Tree) WriteBlob(key string, reader io.Reader) error

WriteBlob writes a blob to the blobstore

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL