wip
This commit is contained in:
parent
c255b58335
commit
1812873e33
10 changed files with 342 additions and 61 deletions
48
node.go
48
node.go
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue