interfaces

package
v0.0.0-...-9ed8f83 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2024 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type InternalModuleService

type InternalModuleService[TEntity any, TContainer any] interface {
	GetContainer() TContainer
	Retrieve(idOrObject interface{}, config *sql.Options, sharedContext *context.Context) (*TEntity, error)
	List(filters interface{}, config *sql.Options, sharedContext *context.Context) ([]TEntity, error)
	ListAndCount(filters interface{}, config *sql.Options, sharedContext *context.Context) ([]TEntity, int, error)
	Create(data interface{}, sharedContext *context.Context) ([]TEntity, error)
	Update(data interface{}, sharedContext *context.Context) ([]TEntity, error)
	Delete(idOrSelector interface{}, sharedContext *context.Context) error
	SoftDelete(idsOrFilter interface{}, sharedContext *context.Context) ([]TEntity, map[string][]interface{}, error)
	Restore(idsOrFilter interface{}, sharedContext *context.Context) ([]TEntity, map[string][]interface{}, error)
	Upsert(data interface{}, sharedContext *context.Context) ([]TEntity, error)
}

type RepositoryInterface

type RepositoryInterface[M any] interface {
	Relations(relations []string) RepositoryInterface[M]
	Db() *gorm.DB
	Specification(specification ...sql.Specification) RepositoryInterface[M]

	Create(ctx context.Context, model *M) *utils.ApplictaionError
	CreateSlice(ctx context.Context, model *[]M) *utils.ApplictaionError
	CreateBatch(ctx context.Context, model *M, batchSize int) *utils.ApplictaionError
	CreateTx(ctx context.Context, model *M, tx *gorm.DB) *utils.ApplictaionError

	Insert(ctx context.Context, model *M) *utils.ApplictaionError
	InsertSlice(ctx context.Context, model *[]M) *utils.ApplictaionError
	InsertTx(ctx context.Context, model *M, tx *gorm.DB) *utils.ApplictaionError

	Save(ctx context.Context, model *M) *utils.ApplictaionError
	SaveSlice(ctx context.Context, model *[]M) *utils.ApplictaionError
	SaveTx(ctx context.Context, model *M, tx *gorm.DB) *utils.ApplictaionError

	Update(ctx context.Context, model *M) *utils.ApplictaionError
	UpdateSlice(ctx context.Context, model *[]M) *utils.ApplictaionError

	Upsert(ctx context.Context, model *M) *utils.ApplictaionError

	Delete(ctx context.Context, model *M) *utils.ApplictaionError
	DeleteSlice(ctx context.Context, model []M) *utils.ApplictaionError
	DeleteTx(ctx context.Context, model *M, tx *gorm.DB) *utils.ApplictaionError
	DeletePermanently(ctx context.Context, model *M) *utils.ApplictaionError

	Remove(ctx context.Context, model *M) *utils.ApplictaionError
	RemoveSlice(ctx context.Context, model []M) *utils.ApplictaionError
	RemoveTX(ctx context.Context, model *M, tx *gorm.DB) *utils.ApplictaionError

	SoftRemove(ctx context.Context, model *M) *utils.ApplictaionError
	Recover(ctx context.Context, model *M) *utils.ApplictaionError

	Count(ctx context.Context, query sql.Query) (*int64, *utils.ApplictaionError)
	CountBy(ctx context.Context, field []string, query sql.Query) (*int64, *utils.ApplictaionError)

	Find(ctx context.Context, models *[]M, query sql.Query) *utils.ApplictaionError
	FindAndCount(ctx context.Context, models *[]M, query sql.Query) (*int64, *utils.ApplictaionError)
	FindOne(ctx context.Context, model *M, query sql.Query) *utils.ApplictaionError

	ParseQuery(ctx context.Context, query sql.Query) *gorm.DB

	Clear(target interface{}) *utils.ApplictaionError

	HandleOneError(res *gorm.DB) *utils.ApplictaionError
	HandleError(res *gorm.DB) *utils.ApplictaionError
	HandleDBError(err error) *utils.ApplictaionError
}

RepositoryInterface defines the interface for the generic repository

Jump to

Keyboard shortcuts

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