Merge pull request #1 from seletskiy/master

do not break ancestry tree
This commit is contained in:
Egor Kovetskiy 2015-09-22 20:55:28 +05:00
commit 69b3cd0e88

23
main.go
View File

@ -57,9 +57,14 @@ Options:
type PageInfo struct {
Title string `json:"title"`
Version struct {
Number int64 `json:"number"`
} `json:"version"`
Ancestors []struct {
Id string `json:"id"`
} `json:"ancestors"`
}
func main() {
@ -180,6 +185,18 @@ func updatePage(
) error {
nextPageVersion := pageInfo.Version.Number + 1
if len(pageInfo.Ancestors) == 0 {
return fmt.Errorf(
"Page '%s' info does not contain any information about parents",
pageID,
)
}
// picking only the last one, which is required by confluence
oldAncestors := []map[string]interface{}{
{"id": pageInfo.Ancestors[len(pageInfo.Ancestors)-1].Id},
}
payload := map[string]interface{}{
"id": pageID,
"type": "page",
@ -188,6 +205,7 @@ func updatePage(
"number": nextPageVersion,
"minorEdit": false,
},
"ancestors": oldAncestors,
"body": map[string]interface{}{
"storage": map[string]interface{}{
"value": string(newContent),
@ -220,7 +238,10 @@ func updatePage(
func getPageInfo(
api *gopencils.Resource, pageID string,
) (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 {
return PageInfo{}, err
}