Automatic SQL updates

This commit is contained in:
Magnus Åhall 2023-06-18 22:05:10 +02:00
parent 1812873e33
commit 85a2d0683e
8 changed files with 331 additions and 24 deletions

35
node.go
View file

@ -223,5 +223,40 @@ func (session Session) UpdateNode(nodeID int, content string) (err error) {// {{
)
return
}// }}}
func (session Session) RenameNode(nodeID int, name string) (err error) {// {{{
_, err = db.Exec(`
UPDATE node SET name = $1 WHERE user_id = $2 AND id = $3
`,
name,
session.UserID,
nodeID,
)
return
}// }}}
func (session Session) DeleteNode(nodeID int) (err error) {// {{{
_, err = db.Exec(`
WITH RECURSIVE nodetree AS (
SELECT
id, parent_id
FROM node
WHERE
user_id = $1 AND id = $2
UNION
SELECT
n.id, n.parent_id
FROM node n
INNER JOIN nodetree nt ON n.parent_id = nt.id
)
DELETE FROM node WHERE id IN (
SELECT id FROM nodetree
)`,
session.UserID,
nodeID,
)
return
}// }}}
// vim: foldmethod=marker