This commit is contained in:
Magnus Åhall 2023-06-18 20:13:35 +02:00
parent c255b58335
commit 1812873e33
10 changed files with 342 additions and 61 deletions

48
node.go
View file

@ -110,6 +110,8 @@ func (session Session) Node(nodeID int) (node Node, err error) {// {{{
Level int
}
node = Node{}
node.Children = []Node{}
for rows.Next() {
row := resultRow{}
if err = rows.StructScan(&row); err != nil {
@ -117,8 +119,6 @@ func (session Session) Node(nodeID int) (node Node, err error) {// {{{
}
if row.Level == 0 {
node = Node{}
node.Children = []Node{}
node.ID = row.ID
node.UserID = row.UserID
node.ParentID = row.ParentID
@ -179,5 +179,49 @@ func (session Session) NodeCrumbs(nodeID int) (nodes []Node, err error) {// {{{
}
return
}// }}}
func (session Session) CreateNode(parentID int, name string) (node Node, err error) {// {{{
var rows *sqlx.Rows
rows, err = db.Queryx(`
INSERT INTO node(user_id, parent_id, name)
VALUES($1, NULLIF($2, 0)::integer, $3)
RETURNING
id,
user_id,
COALESCE(parent_id, 0) AS parent_id,
name,
content
`,
session.UserID,
parentID,
name,
)
if err != nil {
return
}
defer rows.Close()
for rows.Next() {
node = Node{}
if err = rows.StructScan(&node); err != nil {
return
}
node.Children = []Node{}
node.Complete = true
}
node.Crumbs, err = session.NodeCrumbs(node.ID)
return
}// }}}
func (session Session) UpdateNode(nodeID int, content string) (err error) {// {{{
_, err = db.Exec(`
UPDATE node SET content = $1 WHERE user_id = $2 AND id = $3
`,
content,
session.UserID,
nodeID,
)
return
}// }}}
// vim: foldmethod=marker