database

package
v0.5.3 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2020 License: Unlicense Imports: 14 Imported by: 0

Documentation

Overview

Package database is an abstraction layer for database systems

Index

Constants

View Source
const (
	TagPrefix       = "goqlorm.relation."
	TagRelationType = TagPrefix + "type"
	TagLinkTo       = TagPrefix + "linkTo"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Adapter

type Adapter interface {
	SyncSchema(options SchemaSyncOptions, models ...interface{}) error
	Close() error
	Select(collectionName string, args interface{}) (interface{}, error)
	SelectInto(collectionName string, args interface{}, model interface{}) error
	SelectAdvanced(collectionName string, model interface{}, query *SelectQuery) error
	MutationAdapter
	DataFromDatabaseUsingResolveParams(objArr interface{}, modelType reflect.Type, p graphql.ResolveParams) error
	RunInTransaction(InnerTransactionFunc) error
}

Use this interface to implement a database interface This will be used by the abstraction layer

type Collection added in v0.4.0

type Collection struct {
	Name string
	// contains filtered or unexported fields
}

func (*Collection) DataFromDatabaseUsingResolveParams added in v0.5.3

func (c *Collection) DataFromDatabaseUsingResolveParams(
	objArr interface{}, modelType reflect.Type, p graphql.ResolveParams) error

func (*Collection) Delete added in v0.5.1

func (c *Collection) Delete(obj interface{}) error

func (*Collection) Insert added in v0.5.1

func (c *Collection) Insert(obj interface{}) error

func (*Collection) RunInTransaction added in v0.5.1

func (c *Collection) RunInTransaction(fn TransactionFunc) error

func (*Collection) Select added in v0.4.0

func (c *Collection) Select(arguments interface{}) (interface{}, error)

func (*Collection) SelectAdvanced added in v0.5.1

func (c *Collection) SelectAdvanced(model interface{}, query *SelectQuery) error

func (*Collection) SelectInto added in v0.5.1

func (c *Collection) SelectInto(arguments interface{}, model interface{}) error

func (*Collection) Update added in v0.5.1

func (c *Collection) Update(obj interface{}) error

type Database added in v0.3.1

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

func Get added in v0.3.1

func Get(adapter Adapter, schemaSyncOptions SchemaSyncOptions, models ...interface{}) *Database

func (*Database) Close added in v0.3.1

func (db *Database) Close() error

func (*Database) Collection added in v0.4.0

func (db *Database) Collection(model interface{}) *Collection

func (*Database) CustomCollection added in v0.5.1

func (db *Database) CustomCollection(name string) *Collection

func (*Database) Prepare added in v0.3.1

func (db *Database) Prepare() error

type InnerTransactionFunc added in v0.4.2

type InnerTransactionFunc func(MutationAdapter) error

type MutationAdapter added in v0.4.2

type MutationAdapter interface {
	CreateCollectionFromModel(name string, model interface{}, ifNotExists bool) error
	Insert(collectionName string, obj interface{}) error
	Update(collectionName string, obj interface{}) error
	Delete(collectionName string, obj interface{}) error
}

type MutationAdapterOverlay added in v0.4.2

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

MutationAdapterOverlay overlays the methods of the mutation adapter on top of the Adapter ones. This is mainly used to provide the abstracted RunInTransaction functionality while keeping the database API the same

func (MutationAdapterOverlay) Close added in v0.4.2

func (overlay MutationAdapterOverlay) Close() error

func (MutationAdapterOverlay) CreateCollectionFromModel added in v0.5.3

func (overlay MutationAdapterOverlay) CreateCollectionFromModel(name string, model interface{}, ifNotExists bool) error

func (MutationAdapterOverlay) DataFromDatabaseUsingResolveParams added in v0.4.2

func (overlay MutationAdapterOverlay) DataFromDatabaseUsingResolveParams(objArr interface{}, modelType reflect.Type, p graphql.ResolveParams) error

func (MutationAdapterOverlay) Delete added in v0.4.2

func (overlay MutationAdapterOverlay) Delete(cn string, obj interface{}) error

func (MutationAdapterOverlay) Insert added in v0.4.2

func (overlay MutationAdapterOverlay) Insert(cn string, obj interface{}) error

func (MutationAdapterOverlay) RunInTransaction added in v0.4.2

func (overlay MutationAdapterOverlay) RunInTransaction(fn InnerTransactionFunc) error

func (MutationAdapterOverlay) Select added in v0.4.2

func (overlay MutationAdapterOverlay) Select(collectionName string, args interface{}) (interface{}, error)

func (MutationAdapterOverlay) SelectAdvanced added in v0.5.1

func (overlay MutationAdapterOverlay) SelectAdvanced(
	collectionName string, model interface{}, query *SelectQuery) error

func (MutationAdapterOverlay) SelectInto added in v0.5.1

func (overlay MutationAdapterOverlay) SelectInto(
	collectionName string, args interface{}, model interface{}) error

func (MutationAdapterOverlay) SyncSchema added in v0.4.2

func (overlay MutationAdapterOverlay) SyncSchema(options SchemaSyncOptions, models ...interface{}) error

func (MutationAdapterOverlay) Update added in v0.4.2

func (overlay MutationAdapterOverlay) Update(cn string, obj interface{}) error

type Relation added in v0.4.0

type Relation struct {
	ModelType     reflect.Type
	Field         reflect.StructField
	LinkedType    reflect.Type
	LinkedTo      reflect.StructField
	LinkedFrom    reflect.StructField
	Associations  *Collection
	AssociateFrom reflect.StructField
	AssociateTo   reflect.StructField
	Type          relationtype.RelationType
}

type SchemaSyncOptions

type SchemaSyncOptions struct {
	// Whether to remove columns from the database
	// that can't be found in models.
	//
	// *This is a potentially destructive option, only
	// enable if you're absolutely sure you want to remove
	// old columns*
	//
	// Note that this may not have an effect on document
	// or graph databases.
	RemoveOrphanedColumns bool
}

type SelectQuery added in v0.5.1

type SelectQuery struct {
	Where  string
	Equals interface{}
	/*GreaterThan interface{}
	SmallerThan interface{}*/
	IgnoreMultiple bool
}

type StructFieldName added in v0.4.0

type StructFieldName = string

type StructFieldRelationMap added in v0.4.0

type StructFieldRelationMap map[StructFieldName]*Relation

type TransactionFunc added in v0.4.2

type TransactionFunc func(txDb *Collection) error

type TypeName added in v0.4.0

type TypeName = string

type TypeRelationsMap added in v0.4.0

type TypeRelationsMap map[TypeName]StructFieldRelationMap

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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