do not break ancestry tree

Running `mark` for updating page, deeply nested in some tree, ended up page
being shifted to the Ctulhu's void, e.g. not belonging to any parent.
This commit is contained in:
Stanislav Seletskiy 2015-09-22 17:33:24 +06:00
parent 766aba2508
commit 064b3886ec

15
main.go
View File

@ -56,10 +56,15 @@ Options:
) )
type PageInfo struct { type PageInfo struct {
Title string `json:"title"` Title string `json:"title"`
Version struct { Version struct {
Number int64 `json:"number"` Number int64 `json:"number"`
} `json:"version"` } `json:"version"`
Ancestors []struct {
Id string `json:"id"`
} `json:"ancestors"`
} }
func main() { func main() {
@ -188,6 +193,9 @@ func updatePage(
"number": nextPageVersion, "number": nextPageVersion,
"minorEdit": false, "minorEdit": false,
}, },
"ancestors": []map[string]interface{}{
{"id": pageInfo.Ancestors[len(pageInfo.Ancestors)-1].Id},
},
"body": map[string]interface{}{ "body": map[string]interface{}{
"storage": map[string]interface{}{ "storage": map[string]interface{}{
"value": string(newContent), "value": string(newContent),
@ -220,7 +228,10 @@ func updatePage(
func getPageInfo( func getPageInfo(
api *gopencils.Resource, pageID string, api *gopencils.Resource, pageID string,
) (PageInfo, error) { ) (PageInfo, error) {
request, err := api.Res("content/"+pageID, &PageInfo{}).Get() request, err := api.Res(
"content/"+pageID, &PageInfo{},
).Get(map[string]string{"expand": "ancestors,version"})
if err != nil { if err != nil {
return PageInfo{}, err return PageInfo{}, err
} }