gorm

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2022 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConcurrentUpdateCode = "CONCURRENT_UPDATE"
)

Variables

View Source
var (
	ErrConcurrency = kerrors.Conflict(ConcurrentUpdateCode, "")
)

Functions

func BuildBooleanFilter added in v0.0.2

func BuildBooleanFilter(field string, filter *query.BooleanFilterOperators) func(db *gorm.DB) *gorm.DB

func BuildDateFilter added in v0.0.2

func BuildDateFilter(field string, filter *query.DateFilterOperators) func(db *gorm.DB) *gorm.DB

func BuildDoubleFilter added in v0.0.2

func BuildDoubleFilter(field string, filter *query.DoubleFilterOperators) func(db *gorm.DB) *gorm.DB

func BuildFloatFilter added in v0.0.2

func BuildFloatFilter(field string, filter *query.FloatFilterOperators) func(db *gorm.DB) *gorm.DB

func BuildInt32Filter added in v0.0.2

func BuildInt32Filter(field string, filter *query.Int32FilterOperators) func(db *gorm.DB) *gorm.DB

func BuildInt64Filter added in v0.0.2

func BuildInt64Filter(field string, filter *query.Int64FilterOperators) func(db *gorm.DB) *gorm.DB

func BuildNullFilter added in v0.0.2

func BuildNullFilter(field string, filter *query.NullFilterOperators) func(db *gorm.DB) *gorm.DB

func BuildStringFilter added in v0.0.2

func BuildStringFilter(field string, filter *query.StringFilterOperation) func(db *gorm.DB) *gorm.DB

func NewConnStrResolver added in v0.0.2

func NewConnStrResolver(c *conf.Endpoints, ts common.TenantStore) data.ConnStrResolver

func NewDbOpener added in v0.0.2

func NewDbOpener() (sgorm.DbOpener, func())

func NewDbProvider added in v0.0.2

func NewDbProvider(cs data.ConnStrResolver, c *sgorm.Config, opener sgorm.DbOpener) sgorm.DbProvider

func NewGormConfig added in v0.0.2

func NewGormConfig(databases *conf.Endpoints, name string) *sgorm.Config

NewGormConfig generate config from database endpoint by name.

func PageScope

func PageScope(page query.Page) func(db *gorm.DB) *gorm.DB

func RegisterCallbacks

func RegisterCallbacks(db *gorm.DB)

RegisterCallbacks register callback into GORM DB

func SortScope

func SortScope(sort query.Sort, d []string) func(db *gorm.DB) *gorm.DB

SortScope build sorting by sort and default d

func WhereUserId

func WhereUserId(id interface{}) func(db *gorm.DB) *gorm.DB

WhereUserId append 'user_id' field filter

Types

type AuditedModel

type AuditedModel struct {
	CreatedBy *string
	UpdatedBy *string
	CreatedAt time.Time `gorm:"timestamp"`
	UpdatedAt time.Time `gorm:"timestamp"`
}

AuditedModel make Model Auditable, embed `audited.AuditedModel` into your model as anonymous field to make the model auditable

type User struct {
  gorm.AuditedModel
}

func (AuditedModel) GetCreatedBy

func (model AuditedModel) GetCreatedBy() *string

GetCreatedBy get created by

func (AuditedModel) GetUpdatedBy

func (model AuditedModel) GetUpdatedBy() *string

GetUpdatedBy get updated by

func (*AuditedModel) SetCreatedBy

func (model *AuditedModel) SetCreatedBy(createdBy interface{})

SetCreatedBy set created by

func (*AuditedModel) SetUpdatedBy

func (model *AuditedModel) SetUpdatedBy(updatedBy interface{})

SetUpdatedBy set updated by

type BuildDetailScope added in v0.0.2

type BuildDetailScope interface {
	BuildDetailScope(withDetail bool) func(db *gorm.DB) *gorm.DB
}

type BuildFilterScope added in v0.0.2

type BuildFilterScope[TQuery any] interface {
	BuildFilterScope(q *TQuery) func(db *gorm.DB) *gorm.DB
}

type BuildPageScope added in v0.0.2

type BuildPageScope[TQuery any] interface {
	BuildPageScope(q *TQuery) func(db *gorm.DB) *gorm.DB
}

type BuildSortScope added in v0.0.2

type BuildSortScope[TQuery any] interface {
	BuildSortScope(q *TQuery) func(db *gorm.DB) *gorm.DB
}

type DefaultSorting added in v0.0.2

type DefaultSorting interface {
	DefaultSorting() []string
}

type GetDb added in v0.0.2

type GetDb interface {
	GetDb(ctx context.Context) *gorm.DB
}

type Repo

type Repo[TEntity any, TKey any, TQuery any] struct {
	DbProvider sgorm.DbProvider
	Eventbus   *eventbus.EventBus
	// contains filtered or unexported fields
}

func NewRepo added in v0.0.2

func NewRepo[TEntity any, TKey any, TQuery any](dbProvider sgorm.DbProvider, eventbus *eventbus.EventBus, override interface{}) *Repo[TEntity, TKey, TQuery]

func (*Repo[TEntity, TKey, TQuery]) BatchCreate added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) BatchCreate(ctx context.Context, entity []*TEntity, batchSize int) error

func (*Repo[TEntity, TKey, TQuery]) Count added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) Count(ctx context.Context, query *TQuery) (total int64, filtered int64, err error)

func (*Repo[TEntity, TKey, TQuery]) Create added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) Create(ctx context.Context, entity *TEntity) error

func (*Repo[TEntity, TKey, TQuery]) Delete added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) Delete(ctx context.Context, id TKey) error

func (*Repo[TEntity, TKey, TQuery]) First added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) First(ctx context.Context, query *TQuery) (*TEntity, error)

func (*Repo[TEntity, TKey, TQuery]) Get added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) Get(ctx context.Context, id TKey) (*TEntity, error)

func (*Repo[TEntity, TKey, TQuery]) List added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) List(ctx context.Context, query *TQuery) ([]*TEntity, error)

func (*Repo[TEntity, TKey, TQuery]) Update added in v0.0.2

func (r *Repo[TEntity, TKey, TQuery]) Update(ctx context.Context, id TKey, entity *TEntity, p query.Select) error

func (*Repo[TEntity, TKey, TQuery]) Upsert added in v0.0.3

func (r *Repo[TEntity, TKey, TQuery]) Upsert(ctx context.Context, entity *TEntity) error

type UIDBase

type UIDBase struct {
	ID uuid.UUID `gorm:"type:char(36)" json:"id"`
}

func (*UIDBase) BeforeCreate

func (u *UIDBase) BeforeCreate(tx *gorm.DB) error

type UpdateAssociation added in v0.0.2

type UpdateAssociation[TEntity any] interface {
	UpdateAssociation(ctx context.Context, entity *TEntity) error
}

Jump to

Keyboard shortcuts

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