datastore

package
v1.2.0-beta.1 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2021 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// SortOrderAscending defines the order of ascending for sorting
	SortOrderAscending = SortOrder(1)
	// SortOrderDescending defines the order of descending for sorting
	SortOrderDescending = SortOrder(-1)
)

Variables

View Source
var (
	// ErrPrimaryEmpty Error that primary key is empty.
	ErrPrimaryEmpty = NewDBError(fmt.Errorf("entity primary is empty"))

	// ErrTableNameEmpty Error that table name is empty.
	ErrTableNameEmpty = NewDBError(fmt.Errorf("entity table name is empty"))

	// ErrNilEntity Error that entity is nil
	ErrNilEntity = NewDBError(fmt.Errorf("entity is nil"))

	// ErrRecordExist Error that entity primary key is exist
	ErrRecordExist = NewDBError(fmt.Errorf("data record is exist"))

	// ErrRecordNotExist Error that entity primary key is not exist
	ErrRecordNotExist = NewDBError(fmt.Errorf("data record is not exist"))

	// ErrIndexInvalid Error that entity index is invalid
	ErrIndexInvalid = NewDBError(fmt.Errorf("entity index is invalid"))
)

Functions

func NewDBError added in v1.2.0

func NewDBError(err error) error

NewDBError new datastore error

Types

type Config

type Config struct {
	Type     string
	URL      string
	Database string
}

Config datastore config

type DBError added in v1.2.0

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

DBError datastore error

func (*DBError) Error added in v1.2.0

func (d *DBError) Error() string

type DataStore

type DataStore interface {
	// add entity to database, Name() and TableName() can't return zero value.
	Add(ctx context.Context, entity Entity) error

	// batch add entity to database, Name() and TableName() can't return zero value.
	BatchAdd(ctx context.Context, entitys []Entity) error

	// Update entity to database, Name() and TableName() can't return zero value.
	Put(ctx context.Context, entity Entity) error

	// Delete entity from database, Name() and TableName() can't return zero value.
	Delete(ctx context.Context, entity Entity) error

	// Get entity from database, Name() and TableName() can't return zero value.
	Get(ctx context.Context, entity Entity) error

	// List entities from database, TableName() can't return zero value.
	List(ctx context.Context, query Entity, options *ListOptions) ([]Entity, error)

	// Count entities from database, TableName() can't return zero value.
	Count(ctx context.Context, entity Entity, options *FilterOptions) (int64, error)

	// IsExist Name() and TableName() can't return zero value.
	IsExist(ctx context.Context, entity Entity) (bool, error)
}

DataStore datastore interface

type Entity added in v1.2.0

type Entity interface {
	SetCreateTime(time time.Time)
	SetUpdateTime(time time.Time)
	PrimaryKey() string
	TableName() string
	Index() map[string]string
}

Entity database data model

func NewEntity added in v1.2.0

func NewEntity(in Entity) (Entity, error)

NewEntity Create a new object based on the input type

type FilterOptions added in v1.2.0

type FilterOptions struct {
	Queries []FuzzyQueryOption
}

FilterOptions filter query returned items

type FuzzyQueryOption added in v1.2.0

type FuzzyQueryOption struct {
	Key   string
	Query string
}

FuzzyQueryOption defines the fuzzy query search filter option

type ListOptions added in v1.2.0

type ListOptions struct {
	FilterOptions
	Page     int
	PageSize int
	SortBy   []SortOption
}

ListOptions list api options

type SortOption added in v1.2.0

type SortOption struct {
	Key   string
	Order SortOrder
}

SortOption describes the sorting parameters for list

type SortOrder added in v1.2.0

type SortOrder int

SortOrder is the order of sort

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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