Versions in this module Expand all Collapse all v0 v0.0.10 Apr 16, 2023 Changes in this version + const Directory + const FilenameRegex + const MetadataAppKey + const MetadataCreatedAtKey + const MetadataDeletedAtKey + const MetadataRefKey + const MetadataSizeKey + const MetadataUpdatedAtKey + const MongoFileCollectionName + const TimestampBase + func NewPermissions(userId int32, perm cert.Permission) *proto.Permissions + func NewProtoFile(file *File) *proto.File + type CertificateApplication interface + CreateFileAccessCertificate func(ctx context.Context, uid int32, file cert.File) (*cert.FileAccessCertificate, error) + type Ctrl uint8 + type DirectoryApplication interface + RegisterFile func(ctx context.Context, file *File, uid int32, path string) (string, error) + UnregisterFile func(ctx context.Context, file *File, uid int32) error + type EventBus interface + EmitFileCreated func(uid int32, f *File) error + EmitFileDeleted func(uid int32, f *File) error + type File struct + func NewFile(id string, filename string) (*File, error) + func (file *File) AddMetadata(key string, value string) (old string, exists bool) + func (file *File) AddPermission(uid int32, perm cert.Permission) + func (file *File) Data() []byte + func (file *File) Directory() string + func (file *File) Flags() Flag + func (file *File) Id() string + func (file *File) IsContributor(uid int32) bool + func (file *File) MarkAsProtected() + func (file *File) Metadata() Metadata + func (file *File) Name() string + func (file *File) Owners() []int32 + func (file *File) Permission(uid int32) (perm cert.Permission) + func (file *File) ProtectFields(uid int32) + func (file *File) RevokeAccess(uid int32) bool + func (file *File) RevokePermission(uid int32, perm cert.Permission) + func (file *File) SetDirectory(dir string) + func (file *File) SetFlag(flag Flag) + func (file *File) SetID(id string) + func (file *File) SetName(name string) + func (file *File) SharedWith() []int32 + func (file *File) Value(key string) (value string, exists bool) + type FileApplication struct + func NewFileApplication(repo FileRepository, dirApp DirectoryApplication, ...) *FileApplication + func (app *FileApplication) Create(ctx context.Context, uid int32, fpath string, data []byte, meta Metadata) (*File, error) + func (app *FileApplication) Delete(ctx context.Context, uid int32, fid string) (*File, error) + func (app *FileApplication) Get(ctx context.Context, uid int32, fid string) (*File, error) + func (app *FileApplication) Update(ctx context.Context, uid int32, fid string, name string, data []byte, ...) (*File, error) + type FileEventBus struct + func NewFileEventBus(bus *fb.RabbitMqEventBus, exchange string, issuer string) *FileEventBus + func (bus *FileEventBus) EmitFileCreated(uid int32, f *File) error + func (bus *FileEventBus) EmitFileDeleted(uid int32, f *File) error + type FileEventHandler struct + func NewFileEventHandler(fileApp *FileApplication, certApp *cert.CertificateApplication, ...) *FileEventHandler + func (handler *FileEventHandler) DiscardIssuer(issuer string) + func (handler *FileEventHandler) OnEvent(ctx context.Context, body []byte) + type FileEventPayload struct + AppID string + FileID string + FileName string + Issuer string + Kind string + UserID int32 + type FileGrpcService struct + func NewFileGrpcServer(fileApp *FileApplication, certApp *cert.CertificateApplication, bus EventBus, ...) *FileGrpcService + func (server *FileGrpcService) Create(ctx context.Context, req *proto.File) (*proto.File, error) + func (server *FileGrpcService) Delete(ctx context.Context, req *proto.File) (*proto.File, error) + func (server *FileGrpcService) Get(ctx context.Context, req *proto.File) (*proto.File, error) + func (server *FileGrpcService) Update(ctx context.Context, req *proto.File) (*proto.File, error) + type FileRepository interface + Create func(ctx context.Context, file *File) error + Delete func(ctx context.Context, file *File) error + Find func(context.Context, string) (*File, error) + FindAll func(context.Context, []string) ([]*File, error) + Save func(ctx context.Context, file *File) error + type Flag uint8 + type Metadata map[string]string + type MongoFileRepository struct + func NewMongoFileRepository(db *mongo.Database, logger *zap.Logger) *MongoFileRepository + func (repo *MongoFileRepository) Create(ctx context.Context, file *File) error + func (repo *MongoFileRepository) Delete(ctx context.Context, file *File) error + func (repo *MongoFileRepository) Find(ctx context.Context, id string) (*File, error) + func (repo *MongoFileRepository) FindAll(ctx context.Context, ids []string) ([]*File, error) + func (repo *MongoFileRepository) Save(ctx context.Context, file *File) error