cwssql

package
v0.3.6 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewPostgresDB

func NewPostgresDB(db_connection_string string) (*gorm.DB, error)

func NewSQLiteDB

func NewSQLiteDB(file_path string) (*gorm.DB, error)

Types

type BaseIdModel

type BaseIdModel struct {
	Id string `gorm:"type:text;primaryKey;default:uuid_generate_v4()"`
}

type BaseJsonBModel

type BaseJsonBModel struct {
	Attributes JSONB `gorm:"type:jsonb" json:"attributes"`
}

type BaseTimeModel

type BaseTimeModel struct {
	CreatedAt time.Time
	UpdatedAt time.Time
}

type DBSession

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

func NewSession

func NewSession(db *gorm.DB) *DBSession

func (*DBSession) Begin

func (s *DBSession) Begin() error

func (*DBSession) Commit

func (s *DBSession) Commit() error

func (*DBSession) GetDb

func (s *DBSession) GetDb() *gorm.DB

func (*DBSession) Rollback

func (s *DBSession) Rollback() error

type IRepository

type IRepository[T any] interface {
	GetSession() *DBSession                             // Get the gorm db session
	GetContext() context.Context                        // Get the context
	GetAll(whereClause ...WhereCaluse) ([]*T, error)    // Get entities. Note: GetAll() equals Select all records.
	Get(whereClause ...WhereCaluse) (*T, error)         // Get entity
	Upsert(entity *T) error                             // Create or Replace
	Delete(entity *T) error                             // Delete entity
	DeleteAll(whereClause ...WhereCaluse) ([]*T, error) // Delete entities
	Refresh(entity *T) error                            // Refresh entity
	Count(whereClause ...WhereCaluse) (int64, error)    // Count entities.
	Begin() error                                       // Start a transaction
	Rollback() error                                    // Rollback a transiction
	Commit() error                                      // Commit a transiction
}

Repository is a generic interface for database operations

type JSONB

type JSONB json.RawMessage

JSONB Interface for JSONB Field

func (*JSONB) Scan

func (j *JSONB) Scan(value any) error

func (JSONB) Value

func (j JSONB) Value() (driver.Value, error)

type NewBaseIdModel added in v0.3.3

type NewBaseIdModel struct {
	Id string `gorm:"type:text;primaryKey;default:gen_random_uuid()"`
}

type Repository

type Repository[T any] struct {
	IRepository[T]
	// contains filtered or unexported fields
}

func NewRepository

func NewRepository[T any](ctx context.Context, session *DBSession) Repository[T]

NewRepository creates a new generic repository

func (*Repository[T]) Begin

func (r *Repository[T]) Begin() error

func (*Repository[T]) Commit

func (r *Repository[T]) Commit() error

func (*Repository[T]) Count

func (r *Repository[T]) Count(whereClauses ...WhereCaluse) (int64, error)

func (*Repository[T]) Delete

func (r *Repository[T]) Delete(entity *T) error

func (*Repository[T]) DeleteAll

func (r *Repository[T]) DeleteAll(whereClauses ...WhereCaluse) ([]*T, error)

func (*Repository[T]) Get

func (r *Repository[T]) Get(whereClauses ...WhereCaluse) (*T, error)

func (*Repository[T]) GetAll

func (r *Repository[T]) GetAll(whereClauses ...WhereCaluse) ([]*T, error)

func (*Repository[T]) GetContext added in v0.3.3

func (r *Repository[T]) GetContext() context.Context

func (*Repository[T]) GetSession added in v0.3.3

func (r *Repository[T]) GetSession() *DBSession

func (*Repository[T]) Refresh

func (r *Repository[T]) Refresh(entity *T) error

func (*Repository[T]) Rollback

func (r *Repository[T]) Rollback() error

func (*Repository[T]) Upsert

func (r *Repository[T]) Upsert(entity *T) error

type WhereCaluse added in v0.3.3

type WhereCaluse map[string][]any

func And added in v0.3.3

func And(clauses ...WhereCaluse) WhereCaluse

func Between added in v0.3.3

func Between(key string, left any, right any) WhereCaluse

func Eq added in v0.3.3

func Eq(key string, value any) WhereCaluse

func GetPrimaryKeyValueMap

func GetPrimaryKeyValueMap(db *gorm.DB, model any) (WhereCaluse, error)

func Gt added in v0.3.3

func Gt(key string, value any) WhereCaluse

func Gte added in v0.3.3

func Gte(key string, value any) WhereCaluse

func In added in v0.3.3

func In(key string, values ...any) WhereCaluse

func Like added in v0.3.3

func Like(key string, value any) WhereCaluse

func Lt added in v0.3.3

func Lt(key string, value any) WhereCaluse

func Lte added in v0.3.3

func Lte(key string, value any) WhereCaluse

func Ne added in v0.3.3

func Ne(key string, value any) WhereCaluse

func Nin added in v0.3.3

func Nin(key string, values ...any) WhereCaluse

func Or added in v0.3.3

func Or(clauses ...WhereCaluse) WhereCaluse

func (WhereCaluse) And added in v0.3.3

func (w WhereCaluse) And(clauses ...WhereCaluse) WhereCaluse

func (WhereCaluse) Between added in v0.3.3

func (w WhereCaluse) Between(key string, left any, right any) WhereCaluse

func (WhereCaluse) Eq added in v0.3.3

func (w WhereCaluse) Eq(key string, value any) WhereCaluse

func (WhereCaluse) Gt added in v0.3.3

func (w WhereCaluse) Gt(key string, value any) WhereCaluse

func (WhereCaluse) Gte added in v0.3.3

func (w WhereCaluse) Gte(key string, value any) WhereCaluse

func (WhereCaluse) In added in v0.3.3

func (w WhereCaluse) In(key string, values ...any) WhereCaluse

func (WhereCaluse) Like added in v0.3.3

func (w WhereCaluse) Like(key string, value any) WhereCaluse

func (WhereCaluse) Lt added in v0.3.3

func (w WhereCaluse) Lt(key string, value any) WhereCaluse

func (WhereCaluse) Lte added in v0.3.3

func (w WhereCaluse) Lte(key string, value any) WhereCaluse

func (WhereCaluse) Ne added in v0.3.3

func (w WhereCaluse) Ne(key string, value any) WhereCaluse

func (WhereCaluse) Nin added in v0.3.3

func (w WhereCaluse) Nin(key string, values ...any) WhereCaluse

func (WhereCaluse) Or added in v0.3.3

func (w WhereCaluse) Or(clauses ...WhereCaluse) WhereCaluse

Jump to

Keyboard shortcuts

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