service

package
v0.0.0-...-4ee43ae Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: GPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MAX_FILE_SIZE           = 268_435_456
	MAX_USER_FILES_DIR_SIZE = 805_306_368
)

Variables

This section is empty.

Functions

func FileCreateDelayPrefix

func FileCreateDelayPrefix(userID string) string

func FilePermissionsPrefix

func FilePermissionsPrefix(fileID string) string

func FilePrefix

func FilePrefix(fileID string) string

func PermissionPrefix

func PermissionPrefix(fileID string, userID string) string

func UserFilesPrefix

func UserFilesPrefix(userID string) string

Types

type AddPermissionData

type AddPermissionData struct {
	UserToken   string
	FileID      string
	UserID      string
	UserToAddID string
}

type DeletePermissionData

type DeletePermissionData struct {
	FileID         string
	UserID         string
	UserToDeleteID string
}

type File

type File interface {
	Create(ctx context.Context, fileObj *model.File, file *multipart.FileHeader) (*model.File, error)
	ProtectedFindByID(ctx context.Context, fileID string, userID string) (*model.File, error)
	FindByID(ctx context.Context, id string) (*model.File, error)
	FindUserFiles(ctx context.Context, userID string) ([]*model.File, error)
	AddPermission(ctx context.Context, data *AddPermissionData) error
	Delete(ctx context.Context, fileID string, user *model.User) error
	DeletePermission(ctx context.Context, data *DeletePermissionData) error
	FindPermissionsToFile(ctx context.Context, fileID string) ([]*model.Permission, error)
}

type FileService

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

func NewFileService

func NewFileService(repo *repository.Repository, hasherClient pb.HasherClient) *FileService

func (*FileService) AddPermission

func (s *FileService) AddPermission(ctx context.Context, data *AddPermissionData) error

func (*FileService) Create

func (s *FileService) Create(ctx context.Context, fileObj *model.File, file *multipart.FileHeader) (*model.File, error)

func (*FileService) Delete

func (s *FileService) Delete(ctx context.Context, fileID string, user *model.User) error

func (*FileService) DeletePermission

func (s *FileService) DeletePermission(ctx context.Context, data *DeletePermissionData) error

func (*FileService) FindByID

func (s *FileService) FindByID(ctx context.Context, id string) (*model.File, error)

func (*FileService) FindPermissionsToFile

func (s *FileService) FindPermissionsToFile(ctx context.Context, fileID string) ([]*model.Permission, error)

func (*FileService) FindUserFiles

func (s *FileService) FindUserFiles(ctx context.Context, userID string) ([]*model.File, error)

func (*FileService) HasPermission

func (s *FileService) HasPermission(ctx context.Context, fileID string, userID string) (bool, error)

func (*FileService) ProtectedFindByID

func (s *FileService) ProtectedFindByID(ctx context.Context, fileID string, userID string) (*model.File, error)

type Service

type Service struct {
	File
}

func New

func New(repo *repository.Repository, hasherClient pb.HasherClient) *Service

Jump to

Keyboard shortcuts

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