fileusecase

package
v0.0.0-...-46bccf7 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PrefixPath = "stored-files/"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateDto

type CreateDto struct {
	Name      string        `form:"name" binding:"required" validate:"required"`
	Access    entity.Access `form:"access" binding:"required,access" validate:"required,access"`
	Tribe     string        `form:"tribe" binding:"required,dirpath" validate:"required,dirpath"`
	Service   string        `form:"service" binding:"required,dirpath" validate:"required,dirpath"`
	Module    string        `form:"module" binding:"required,dirpath" validate:"required,dirpath"`
	SubFolder string        `form:"subFolder" binding:"omitempty,dirpath" validate:"omitempty,dirpath"`
}

type DeleteBulkDto

type DeleteBulkDto struct {
	Names []string `json:"names" binding:"required,min=1"`
}

type FileDto

type FileDto struct {
	Content []byte
	Ext     string
}

type FileValidator

type FileValidator interface {
	IsUniqueFileName(ctx context.Context, name string) error
	IsUniqueFilesName(ctx context.Context, names []string) error
}

type GetPrivateByNameDto

type GetPrivateByNameDto struct {
	Name string `uri:"name" binding:"required"`
}

type GetPublicByNameDto

type GetPublicByNameDto struct {
	Name string `uri:"name" binding:"required"`
}

type Repo

type Repo interface {
	GetByName(ctx context.Context, name string) (*entity.File, error)
	CreateWithTx(ctx context.Context, file *entity.File, fileContent []byte) (*entity.File, error)
	CreateBulkWithTx(ctx context.Context, files []*entity.File, filesContent [][]byte) error
	GetByNames(ctx context.Context, names []string) ([]*entity.File, error)
	Update(ctx context.Context, file *entity.File) (*entity.File, error)
	DeleteBulkWithTx(ctx context.Context, names []string) error
}

type UpdateDto

type UpdateDto struct {
	Name   string        `uri:"name" binding:"required"`
	Access entity.Access `json:"access" binding:"required,access"`
}

type UseCase

type UseCase interface {
	Create(ctx context.Context, dto *CreateDto, fileDto *FileDto) (*entity.File, error)
	GetPublicByName(ctx context.Context, dto *GetPublicByNameDto) (string, error)
	GetPrivateByName(ctx context.Context, dto *GetPrivateByNameDto) (string, error)
	CreateBulk(ctx context.Context, dto []*CreateDto, filesDto []*FileDto) error
	Update(ctx context.Context, dto *UpdateDto) (*entity.File, error)
	DeleteBulk(ctx context.Context, dto *DeleteBulkDto) error
}

func NewFileUseCase

func NewFileUseCase(repo Repo, validator FileValidator) UseCase

Jump to

Keyboard shortcuts

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