gorm

package module
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2020 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LogDebug logLevel = iota
	LogInfo
)

Log levels (defaults to Debug)

Variables

This section is empty.

Functions

func Deadlock

func Deadlock(err error) bool

Deadlock is true when deadlock was detected

func NotFound

func NotFound(err error) bool

NotFound is true when there was no appropriate record

func UniqueViolation

func UniqueViolation(err error) bool

UniqueViolation is true when database unique index is violated

Types

type Backend

type Backend struct {
	DB              *gorm.DB
	Driver          string
	DBURI           string
	Debug           bool
	LogLevel        logLevel
	Migrate         bool
	MaxIdleConns    int
	MaxOpenConns    int
	ConnMaxLifetime time.Duration
	InitSchema      func(*gorm.DB) error
	// contains filtered or unexported fields
}

Backend implements generic database backend

func (*Backend) Begin

func (b *Backend) Begin() *Backend

func (*Backend) Close

func (b *Backend) Close() error

Close DB connection

func (*Backend) Connect

func (b *Backend) Connect(migrations ...*gormigrate.Migration) error

Connect sets up the backend and applies migrations if Migrate flag is set to true. InitSchema func if set, is used to create initial schema.

func (*Backend) Context

func (b *Backend) Context() context.Context

Context returns context associated with Backend

func (*Backend) End

func (b *Backend) End(rErr error) error

func (*Backend) WithContext

func (b *Backend) WithContext(ctx context.Context) *Backend

WithContext creates Backend clone with new context and logger

func (*Backend) WithLogger added in v0.0.2

func (b *Backend) WithLogger(printer func(...interface{})) *Backend

WithLogger injects log printer func into Backend

type Pagination

type Pagination struct {
	PageSize      int    `json:"page_size"`
	NextPageToken string `json:"next_page_token"`
	ThisPageToken string `json:"this_page_token"`
	PrevPageToken string `json:"prev_page_token"`
}

Pagination contains pagination fields

func (*Pagination) GetPageSize

func (p *Pagination) GetPageSize() int

GetPageSize returns pagination size

type Paginator

type Paginator struct {
	FieldName     string
	TieBreakField string
	Reverse       bool
	Debug         bool
	IsTime        bool
}

Paginator provides cursor-based paginator

func (*Paginator) Paginate

func (p *Paginator) Paginate(src interface{}, pgn *Pagination) (interface{}, *Pagination)

Paginate query result according to parameter

func (*Paginator) Scope

func (p *Paginator) Scope(pgn *Pagination) func(*gorm.DB) *gorm.DB

Scope provides proper offset and ordering for cursor db

Jump to

Keyboard shortcuts

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