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
IndexStrategy 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 ¶
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 ¶
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
RelationType Specifies Type of testRelationship
const ( // Single Side of relationship can only point to 0 or 1 other nodes Single RelationType = 0 // Multi Side of relationship can point to 0+ other nodes Multi RelationType = 1 )
type RelationshipWrap ¶
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 ¶
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 ¶
type SessionConfig neo4j.SessionConfig
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
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. |