service

package
v0.0.0-...-16accc7 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2025 License: GPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FileCreateDelayPrefix

func FileCreateDelayPrefix(userID string) string

func FilePermissionPrefix

func FilePermissionPrefix(fileID, username string) string

func FilePermissionsPrefix

func FilePermissionsPrefix(fileID string) string

func FilePrefix

func FilePrefix(fileID string) string

func FolderContentsPrefix

func FolderContentsPrefix(folderID string) string

func FolderPermissionPrefix

func FolderPermissionPrefix(folderID, username string) string

func FolderPermissionsPrefix

func FolderPermissionsPrefix(folderID string) string

func FolderPrefix

func FolderPrefix(id string) string

func SpaceByUsernamePrefix

func SpaceByUsernamePrefix(username string) string

func SpacePrefix

func SpacePrefix(userID string) string

func SpaceSizePrefix

func SpaceSizePrefix(userID string) string

func UserFilesPrefix

func UserFilesPrefix(userID string) string

func UserFoldersPrefix

func UserFoldersPrefix(userID string) string

Types

type AddPermissionData

type AddPermissionData struct {
	ResourceID    string
	UserSpace     model.FullUserSpace
	UserRole      string
	UserToAddName string
}

type DeletePermissionData

type DeletePermissionData struct {
	ResourceID       string
	UserID           string
	UserRole         string
	UserToDeleteName string
}

type File

type File interface {
	Create(ctx context.Context, userSpace model.FullUserSpace, fileObj model.File, file multipart.File, fileHeader *multipart.FileHeader) (*model.File, error)
	ProtectedFindByID(ctx context.Context, fileID, userRole string, userSpace model.FullUserSpace) (*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, d AddPermissionData) error
	Delete(ctx context.Context, fileID, userRole string, userSpace model.FullUserSpace) error
	DeletePermission(ctx context.Context, d DeletePermissionData) error
	FindPermissionsToFile(ctx context.Context, fileID, creatorID string) ([]*string, error)
	TogglePublic(ctx context.Context, id, creatorID string) error
}

type FileService

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

func NewFileService

func NewFileService(logger *zap.Logger, repo *repository.Repository, hasherClient pb.HasherClient, userSpaceService UserSpace, rdb *redis.Client, folderService Folder) *FileService

func (*FileService) AddPermission

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

func (*FileService) Create

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

func (*FileService) Delete

func (s *FileService) Delete(ctx context.Context, fileID, userRole string, userSpace model.FullUserSpace) error

func (*FileService) DeletePermission

func (s *FileService) DeletePermission(ctx context.Context, d 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, creatorID string) ([]*string, 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, username string) (bool, error)

func (*FileService) ProtectedFindByID

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

func (*FileService) TogglePublic

func (s *FileService) TogglePublic(ctx context.Context, id, creatorID string) error

type Folder

type Folder interface {
	Create(ctx context.Context, f model.Folder) (*model.Folder, error)

	ProtectedFindByID(ctx context.Context, id, userRole string, userSpace model.FullUserSpace) (*model.Folder, error)
	Rename(ctx context.Context, id, userID, newName string) error
	GetFolderContents(ctx context.Context, id, userRole string, userSpace model.FullUserSpace) (*model.FolderContents, error)
	GetUserFolders(ctx context.Context, userID string) ([]*model.Folder, error)
	AddPermission(ctx context.Context, d AddPermissionData) error
	DeletePermission(ctx context.Context, d DeletePermissionData) error
	GetPermissions(ctx context.Context, folderID, userID string) ([]*string, error)
	// contains filtered or unexported methods
}

type Service

type Service struct {
	UserSpace
	Folder
	File
	// contains filtered or unexported fields
}

func New

func New(logger *zap.Logger, repo *repository.Repository, rabbitmq *rabbitmq.MQConn, hasherClient pb.HasherClient, rdb *redis.Client) *Service

func (*Service) StartAllWorkers

func (s *Service) StartAllWorkers(ctx context.Context)

type UserSpace

type UserSpace interface {
	Get(ctx context.Context, userID string) (*model.FullUserSpace, error)
	GetSize(ctx context.Context, userID string) (int64, error)
	StartCreatingUsersSpaces(ctx context.Context)
	UpdateLevel(ctx context.Context, userID string, newLevel uint8) error
	// contains filtered or unexported methods
}

Jump to

Keyboard shortcuts

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