rsdb

package
v0.0.0-...-fc1e0a8 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2020 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AndQueryOperator queryOperator = "AND"
	OrQueryOperator  queryOperator = "OR"
)
View Source
const (
	ErrRecordNotFound       sierrors.Error = "record not found"
	ErrDuplicateData        sierrors.Error = "duplicated data"
	ErrInvalidData          sierrors.Error = "invalid data"
	ErrInvalidModel         sierrors.Error = "invalid model"
	ErrForeignKeyConstraint sierrors.Error = "foreign key constraint fails"
)
View Source
const ErrInvalidTransaction = rserrors.Error("invalid transaction")

Variables

This section is empty.

Functions

func AssertMockDatabase

func AssertMockDatabase(t *testing.T, mock sqlmock.Sqlmock)

func CreateMockDB

func CreateMockDB() (*gorm.DB, sqlmock.Sqlmock, error)

func CreateTables

func CreateTables(repos ...Repository) error

func HandleSQLError

func HandleSQLError(err error) error

func Init

func Init(config DatabaseConfig) error

func JsonValue

func JsonValue(dst interface{}) (driver.Value, error)

func ScanJson

func ScanJson(dst, src interface{}) error

Types

type Connection

type Connection interface {
	Begin() (Connection, error)
	Close() error
	Rollback() error
	Commit() error
	Conn() *gorm.DB
}

func GetConnection

func GetConnection() Connection

func NewConnection

func NewConnection(tx *gorm.DB) Connection

type DatabaseConfig

type DatabaseConfig interface {
	GetHost() string
	GetPort() uint
	GetUsername() string
	GetPassword() string
	GetDatabaseName() string
	GetVerbose() bool
}

type DefaultRepository

type DefaultRepository struct{}

func (*DefaultRepository) Create

func (DefaultRepository) CreateTable

func (repo DefaultRepository) CreateTable(tx Connection) error

func (*DefaultRepository) DeleteById

func (repo *DefaultRepository) DeleteById(tx Connection, id rsmodels.ValidatedObject) error

func (*DefaultRepository) FirstOrCreate

func (repo *DefaultRepository) FirstOrCreate(tx Connection, src rsmodels.ValidatedObject) error

func (*DefaultRepository) GetById

func (*DefaultRepository) List

func (repo *DefaultRepository) List(tx Connection, items interface{}, filter ListFilter, orders Orders) (int, error)

func (*DefaultRepository) Patch

func (*DefaultRepository) Save

type ListFilter

type ListFilter struct {
	Page       int
	NumItem    int
	Conditions map[string]interface{}
}

func (ListFilter) Offset

func (listFilter ListFilter) Offset() int

type MockFunc

type MockFunc func(mock sqlmock.Sqlmock)

type Order

type Order struct {
	Field string
	IsASC bool
}

func (Order) String

func (o Order) String() string

type Orders

type Orders []Order

func (Orders) String

func (orders Orders) String() string

type Query

type Query interface {
	QueryBuilder
	Where() string
	Values() []interface{}
}

func NewEmptyQuery

func NewEmptyQuery() Query

func NewQuery

func NewQuery(w string, values ...interface{}) (Query, error)

type QueryBuilder

type QueryBuilder interface {
	Or(q Query) Query
	And(q Query) Query
}

type Repository

type Repository interface {
	Create(tx Connection, src rsmodels.ValidatedObject) error
	FirstOrCreate(tx Connection, src rsmodels.ValidatedObject) error
	DeleteById(tx Connection, id rsmodels.ValidatedObject) error
	GetById(tx Connection, id rsmodels.ValidatedObject) error
	Save(tx Connection, src rsmodels.ValidatedObject) error
	Patch(tx Connection, src rsmodels.ValidatedObject, data rsmodels.ValidatedObject) error
	List(tx Connection, items interface{}, filter ListFilter, orders Orders) (totalCount int, err error)
	CreateTable(tx Connection) error
}

func NewDefaultRepository

func NewDefaultRepository() Repository

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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