generated from alecodes/base-template
feat: add simple reconsiliation capabilities
This commit is contained in:
parent
5d00b7c336
commit
28fa3ed3cc
5 changed files with 451 additions and 8 deletions
|
|
@ -195,7 +195,7 @@ func (conn *DB) NewPlatform(name string, metadata []byte, originalData []byte) (
|
|||
Collections: []*Collection{collection},
|
||||
}
|
||||
|
||||
_, err = conn.addRelationwithTx(tx, platform.Id, &collection_has_node{}, collection.Id)
|
||||
_, err = conn.addRelationwithTx(tx, platform.Id, &platform_has_collection{}, collection.Id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -340,6 +340,60 @@ func (conn *DB) GetNode(id int64) (*Node, error) {
|
|||
return &node, nil
|
||||
}
|
||||
|
||||
func (conn *DB) GetPlatform(id int64) (*Platform, error) {
|
||||
node := Node{
|
||||
Id: id,
|
||||
_conn: conn,
|
||||
}
|
||||
sql := "SELECT _class, name, metadata, original_data FROM nodes WHERE id = $1 AND _class = 'PLATFORM';"
|
||||
conn.log(DEBUG, sql)
|
||||
|
||||
err := conn.Connection.QueryRow(sql, id).
|
||||
Scan(&node._class, &node.name, &node.metadata, &node.originalData)
|
||||
if err != nil {
|
||||
conn.log(DEBUG, err)
|
||||
return nil, fmt.Errorf("No row matching id = %v", id)
|
||||
}
|
||||
|
||||
platform := &Platform{
|
||||
Node: node,
|
||||
}
|
||||
|
||||
err = platform.loadCollections()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return platform, nil
|
||||
}
|
||||
|
||||
func (conn *DB) GetCollection(id int64) (*Collection, error) {
|
||||
node := Node{
|
||||
Id: id,
|
||||
_conn: conn,
|
||||
}
|
||||
sql := "SELECT _class, name, metadata, original_data FROM nodes WHERE id = $1 AND _class = 'COLLECTION';"
|
||||
conn.log(DEBUG, sql)
|
||||
|
||||
err := conn.Connection.QueryRow(sql, id).
|
||||
Scan(&node._class, &node.name, &node.metadata, &node.originalData)
|
||||
if err != nil {
|
||||
conn.log(DEBUG, err)
|
||||
return nil, fmt.Errorf("No row matching id = %v", id)
|
||||
}
|
||||
|
||||
collection := &Collection{
|
||||
Node: node,
|
||||
}
|
||||
|
||||
err = collection.loadNodes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return collection, nil
|
||||
}
|
||||
|
||||
// Deletes a node with the provided id
|
||||
func (conn *DB) DeleteNode(id int64) error {
|
||||
tx, err := conn.Connection.Begin()
|
||||
|
|
|
|||
Reference in a new issue