Documentation
¶
Index ¶
- Constants
- Variables
- func Init(conf *Config, mapTypes ...interface{}) error
- func PathLoadStrategyEdgeConstraint(startVariable, startLabel, endLabel, endTargetField string, ...) (dsl.Cypher, error)
- func PathLoadStrategyMany(variable, label string, depth int, additionalConstraints dsl.ConditionOperator) (dsl.Cypher, error)
- func PathLoadStrategyOne(variable, label string, depth int, additionalConstraints dsl.ConditionOperator) (dsl.Cypher, error)
- func Reset()
- type BaseNode
- type Config
- type IEdge
- type ISession
- type ITransaction
- type IndexStrategy
- type InvalidDecoratorConfigError
- type InvalidStructConfigError
- type LoadStrategy
- type NodeWrap
- type Pagination
- type PathWrap
- type RelationConfig
- type RelationType
- type RelationshipWrap
- type Session
- func (s *Session) Begin() error
- func (s *Session) Close() error
- func (s *Session) Commit() error
- func (s *Session) Delete(deleteObj interface{}) error
- func (s *Session) DeleteUUID(uuid string) error
- func (s *Session) Load(respObj interface{}, id string) error
- func (s *Session) LoadAll(respObj interface{}) error
- func (s *Session) LoadAllDepth(respObj interface{}, depth int) error
- func (s *Session) LoadAllDepthFilter(respObj interface{}, depth int, filter dsl.ConditionOperator, ...) error
- func (s *Session) LoadAllDepthFilterPagination(respObj interface{}, depth int, filter dsl.ConditionOperator, ...) error
- func (s *Session) LoadAllEdgeConstraint(respObj interface{}, endNodeType, endNodeField string, ...) error
- func (s *Session) LoadDepth(respObj interface{}, id string, depth int) error
- func (s *Session) LoadDepthFilter(respObj interface{}, id string, depth int, filter *dsl.ConditionBuilder, ...) error
- func (s *Session) LoadDepthFilterPagination(respObj interface{}, id string, depth int, filter dsl.ConditionOperator, ...) error
- func (s *Session) PurgeDatabase() error
- func (s *Session) Query(query string, properties map[string]interface{}, respObj interface{}) error
- func (s *Session) QueryRaw(query string, properties map[string]interface{}) ([][]interface{}, error)
- func (s *Session) Rollback() error
- func (s *Session) RollbackWithError(originalError error) error
- func (s *Session) Save(saveObj interface{}) error
- func (s *Session) SaveDepth(saveObj interface{}, depth int) error
- type SessionConfig
Constants ¶
const AccessModeRead = neo4j.AccessModeRead
const AccessModeWrite = neo4j.AccessModeWrite
Variables ¶
var ErrConfiguration = errors.New("gogm: configuration was malformed")
var ErrConnection = errors.New("gogm: connection error")
var ErrInternal = errors.New("gogm: internal error")
var ErrInvalidParams = errors.New("gogm: invalid params")
var ErrNotFound = errors.New("gogm: data not found")
base errors for gogm 1.13 errors, these are pretty self explanatory
var ErrTransaction = errors.New("gogm: transaction error")
var ErrValidation = errors.New("gogm: struct validation error")
Functions ¶
func Init ¶
Init sets up gogm. Takes in config object and variadic slice of gogm nodes to map. Note: Must pass pointers to nodes!
func PathLoadStrategyEdgeConstraint ¶
func PathLoadStrategyEdgeConstraint(startVariable, startLabel, endLabel, endTargetField string, minJumps, maxJumps, depth int, additionalConstraints dsl.ConditionOperator) (dsl.Cypher, error)
PathLoadStrategyEdgeConstraint is similar to load many, but requires that it is related to another node via some edge
func PathLoadStrategyMany ¶
func PathLoadStrategyMany(variable, label string, depth int, additionalConstraints dsl.ConditionOperator) (dsl.Cypher, error)
PathLoadStrategyMany loads many using path strategy
func PathLoadStrategyOne ¶
func PathLoadStrategyOne(variable, label string, depth int, additionalConstraints dsl.ConditionOperator) (dsl.Cypher, error)
PathLoadStrategyOne loads one object using path strategy
Types ¶
type BaseNode ¶
type BaseNode struct {
// Id is the GraphId that neo4j uses internally
Id int64 `json:"-" gogm:"name=id"`
// UUID is the unique identifier GoGM uses as a primary key
UUID string `json:"uuid" gogm:"pk;name=uuid"`
// LoadMap represents the state of how a node was loaded for neo4j.
// This is used to determine if relationships are removed on save
// field -- relations
LoadMap map[string]*RelationConfig `json:"-" gogm:"-"`
}
BaseNode contains fields that ALL GoGM nodes are required to have
type Config ¶
type Config struct {
// Host is the neo4j host
Host string `yaml:"host" json:"host" mapstructure:"host"`
// Port is the neo4j port
Port int `yaml:"port" json:"port" mapstructure:"port"`
// IsCluster specifies whether GoGM is connecting to a casual cluster or not
IsCluster bool `yaml:"is_cluster" json:"is_cluster" mapstructure:"is_cluster"`
// Username is the GoGM username
Username string `yaml:"username" json:"username" mapstructure:"username"`
// Password is the GoGM password
Password string `yaml:"password" json:"password" mapstructure:"password"`
// PoolSize is the size of the connection pool for GoGM
PoolSize int `yaml:"pool_size" json:"pool_size" mapstructure:"pool_size"`
Realm string `yaml:"realm" json:"realm" mapstructure:"realm"`
Encrypted bool `yaml:"encrypted" json:"encrypted" mapstructure:"encrypted"`
// Index Strategy defines the index strategy for GoGM
IndexStrategy IndexStrategy `yaml:"index_strategy" json:"index_strategy" mapstructure:"index_strategy"`
TargetDbs []string `yaml:"target_dbs" json:"target_dbs" mapstructure:"target_dbs"`
Logger logrus.FieldLogger `yaml:"-" json:"-" mapstructure:"-"`
// if logger is not nil log level will be ignored
LogLevel string `json:"log_level" yaml:"log_level" mapstructure:"log_level"`
}
Config Defined GoGM config
func (*Config) ConnectionString ¶
ConnectionString builds the neo4j bolt/bolt+routing connection string
type IEdge ¶
type IEdge interface {
// GetStartNode gets start node of edge
GetStartNode() interface{}
// GetStartNodeType gets reflect type of start node
GetStartNodeType() reflect.Type
// SetStartNode sets start node of edge
SetStartNode(v interface{}) error
// GetEndNode gets end node of edge
GetEndNode() interface{}
// GetEndNodeType gets reflect type of end node
GetEndNodeType() reflect.Type
// SetEndNode sets end node of edge
SetEndNode(v interface{}) error
}
IEdge specifies required functions for special edge nodes
type ISession ¶
type ISession interface {
//transaction functions
ITransaction
//load single object
Load(respObj interface{}, id string) error
//load object with depth
LoadDepth(respObj interface{}, id string, depth int) error
//load with depth and filter
LoadDepthFilter(respObj interface{}, id string, depth int, filter *dsl.ConditionBuilder, params map[string]interface{}) error
//load with depth, filter and pagination
LoadDepthFilterPagination(respObj interface{}, id string, depth int, filter dsl.ConditionOperator, params map[string]interface{}, pagination *Pagination) error
//load slice of something
LoadAll(respObj interface{}) error
//load all of depth
LoadAllDepth(respObj interface{}, depth int) error
//load all of type with depth and filter
LoadAllDepthFilter(respObj interface{}, depth int, filter dsl.ConditionOperator, params map[string]interface{}) error
//load all with depth, filter and pagination
LoadAllDepthFilterPagination(respObj interface{}, depth int, filter dsl.ConditionOperator, params map[string]interface{}, pagination *Pagination) error
//load all edge query
LoadAllEdgeConstraint(respObj interface{}, endNodeType, endNodeField string, edgeConstraint interface{}, minJumps, maxJumps, depth int, filter dsl.ConditionOperator) error
//save object
Save(saveObj interface{}) error
//save object with depth
SaveDepth(saveObj interface{}, depth int) error
//delete
Delete(deleteObj interface{}) error
//delete uuid
DeleteUUID(uuid string) error
//specific query, responds to slice and single objects
Query(query string, properties map[string]interface{}, respObj interface{}) error
//similar to query, but returns raw rows/cols
QueryRaw(query string, properties map[string]interface{}) ([][]interface{}, error)
//delete everything, this will literally delete everything
PurgeDatabase() error
// closes session
Close() error
}
session object for ogm interactions
type ITransaction ¶
type ITransaction interface {
// Begin begins transaction
Begin() error
// Rollback rolls back transaction
Rollback() error
// RollbackWithError wraps original error into rollback error if there is one
RollbackWithError(err error) error
// Commit commits transaction
Commit() error
}
ITransaction specifies functions for Neo4j ACID transactions
type IndexStrategy ¶
type IndexStrategy int
Index Strategy typedefs int to define different index approaches
const ( // ASSERT_INDEX ensures that all indices are set and sets them if they are not there ASSERT_INDEX IndexStrategy = 0 // VALIDATE_INDEX ensures that all indices are set VALIDATE_INDEX IndexStrategy = 1 // IGNORE_INDEX skips the index step of setup IGNORE_INDEX IndexStrategy = 2 )
type InvalidDecoratorConfigError ¶
func NewInvalidDecoratorConfigError ¶
func NewInvalidDecoratorConfigError(issue, field string) *InvalidDecoratorConfigError
func (*InvalidDecoratorConfigError) Error ¶
func (i *InvalidDecoratorConfigError) Error() string
type InvalidStructConfigError ¶
type InvalidStructConfigError struct {
// contains filtered or unexported fields
}
func NewInvalidStructConfigError ¶
func NewInvalidStructConfigError(issue string) *InvalidStructConfigError
func (*InvalidStructConfigError) Error ¶
func (i *InvalidStructConfigError) Error() string
type LoadStrategy ¶
type LoadStrategy int
Specifies query based load strategy
const ( // PathLoadStrategy uses cypher path PATH_LOAD_STRATEGY LoadStrategy = iota // SchemaLoadStrategy generates queries specifically from generated schema SCHEMA_LOAD_STRATEGY )
type NodeWrap ¶ added in v1.3.1
type NodeWrap struct {
Id int64 `json:"id"`
Labels []string `json:"labels"`
Props map[string]interface{} `json:"props"`
}
NodeWrap wraps the neo4j node struct because it is private
type Pagination ¶
type Pagination struct {
// specifies which page number to load
PageNumber int
// limits how many records per page
LimitPerPage int
// specifies variable to order by
OrderByVarName string
// specifies field to order by on
OrderByField string
// specifies whether orderby is desc or asc
OrderByDesc bool
}
pagination configuration
func (*Pagination) Validate ¶
func (p *Pagination) Validate() error
type PathWrap ¶ added in v1.3.1
type PathWrap struct {
Nodes []*NodeWrap `json:"nodes"`
RelNodes []*RelationshipWrap `json:"rel_nodes"`
}
PathWrap wraps the neo4j path struct because it is private
type RelationConfig ¶
type RelationConfig struct {
// stores graph ids
Ids []int64 `json:"-" gomg:"-"`
// specifies relationship type
RelationType RelationType `json:"-" gomg:"-"`
}
RelationConfig specifies how relationships are loaded
type RelationType ¶
type RelationType int
Specifies Type of testRelationship
const ( // Side of relationship can only point to 0 or 1 other nodes Single RelationType = 0 // Side of relationship can point to 0+ other nodes Multi RelationType = 1 )
type RelationshipWrap ¶ added in v1.3.1
type RelationshipWrap struct {
Id int64 `json:"id"`
StartId int64 `json:"start_id"`
EndId int64 `json:"end_id"`
Type string `json:"type"`
Props map[string]interface{} `json:"props"`
}
RelationshipWrap wraps the neo4j relationship struct because it is private
type Session ¶
type Session struct {
DefaultDepth int
LoadStrategy LoadStrategy
// contains filtered or unexported fields
}
func NewSession ¶
func NewSessionWithConfig ¶ added in v1.3.0
func NewSessionWithConfig(conf SessionConfig) (*Session, error)
func (*Session) DeleteUUID ¶
func (*Session) LoadAllDepth ¶
func (*Session) LoadAllDepthFilter ¶
func (*Session) LoadAllDepthFilterPagination ¶
func (s *Session) LoadAllDepthFilterPagination(respObj interface{}, depth int, filter dsl.ConditionOperator, params map[string]interface{}, pagination *Pagination) error
func (*Session) LoadAllEdgeConstraint ¶
func (*Session) LoadDepthFilter ¶
func (*Session) LoadDepthFilterPagination ¶
func (s *Session) LoadDepthFilterPagination(respObj interface{}, id string, depth int, filter dsl.ConditionOperator, params map[string]interface{}, pagination *Pagination) error
func (*Session) PurgeDatabase ¶
func (*Session) RollbackWithError ¶
type SessionConfig ¶ added in v1.3.0
type SessionConfig neo4j.SessionConfig
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
gogmcli
command
|
|
|
gogmcli/gen
gen provides code to generate link and unlink functions for gogm structs
|
gen provides code to generate link and unlink functions for gogm structs |
|
Code generated by GoGM v1.0.1.
|
Code generated by GoGM v1.0.1. |