database

package
v0.0.0-...-5bcfc9d Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheAccess

type CacheAccess interface {
	RedisDb() *redis.Client
}

type CacheManager

type CacheManager interface {
	WriteRedis
	ReadRedis
	CacheAccess
}

type Counter

type Counter interface {
	CheckExists(receiver interface{}, query interface{}, args ...interface{}) bool
	CheckExistsInTable(table string, query interface{}, args ...interface{}) bool
	CountRecords(model interface{}) (int64, error)
	CountSpecificRecords(model interface{}, query interface{}) (int64, error)
}

Counter interface for database counting operations

type DBAccessor

type DBAccessor interface {
	DB() *gorm.DB
}

DBAccessor interface for getting the database connection

type DatabaseManager

type DatabaseManager interface {
	Reader
	Writer
	Counter
	Preloader
	DBAccessor
}

type Pagination

type Pagination struct {
	Page  int
	Limit int
}

brought here to avoid cycli

type PaginationResponse

type PaginationResponse struct {
	CurrentPage     int `json:"current_page"`
	PageCount       int `json:"page_count"`
	TotalPagesCount int `json:"total_pages_count"`
}

type Preloader

type Preloader interface {
	PreloadEntities(db *gorm.DB, model interface{}, preloads ...string) *gorm.DB
}

Preloader interface for preloading operations

type ReadRedis

type ReadRedis interface {
	RedisGet(key string) ([]byte, error)
	PopFromQueue() (interface{}, error)
}

type Reader

type Reader interface {
	SelectAllFromDb(order string, preload string, receiver interface{}, query interface{}, args ...interface{}) error
	SelectAllFromDbWithLimit(order string, limit int, receiver interface{}, query interface{}, args ...interface{}) error
	SelectAllFromDbOrderBy(orderBy, order string, receiver interface{}, query interface{}, args ...interface{}) error
	SelectAllFromDbOrderByPaginated(orderBy, order, filter string, pagination Pagination, receiver interface{}, query interface{}, args ...interface{}) (PaginationResponse, error)
	SelectAllFromByGroup(orderBy, order string, pagination *Pagination, receiver interface{}, query interface{}, groupColumn string, args ...interface{}) (PaginationResponse, error)
	RawSelectAllFromByGroup(orderBy, order string, pagination *Pagination, model interface{}, receiver interface{}, groupColumn string, selectQuery string, query string, args ...interface{}) (PaginationResponse, error)
	SelectOneFromDb(receiver interface{}, query interface{}, args ...interface{}) (error, error)
	SelectLatestFromDb(receiver interface{}, query interface{}, args ...interface{}) (error, error)
	SelectRandomFromDb(receiver interface{}, query interface{}, args ...interface{}) (error, error)
	SelectFirstFromDb(receiver interface{}) error
}

Reader interface for read operation interface

type WriteRedis

type WriteRedis interface {
	RedisSet(key string, value interface{}) error
	RedisDelete(key string) (int64, error)

	PushToQueue(value interface{}) error
}

type Writer

type Writer interface {
	// Create operations
	CreateOneRecord(model interface{}) error
	CreateMultipleRecords(models interface{}, length int) error

	// Update operations
	SaveAllFields(model interface{}) (*gorm.DB, error)
	UpdateFields(model interface{}, updates interface{}, id string) (*gorm.DB, error)
	SaveAllModelsFields(models []interface{}) (*gorm.DB, error)

	// Delete operations
	DeleteRecordFromDb(record interface{}) error
	HardDeleteRecordFromDb(record interface{}) error
}

Writer interface for write operations

Jump to

Keyboard shortcuts

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