mirror of
https://github.com/kovetskiy/mark.git
synced 2025-04-24 05:42:40 +08:00
save page title
This commit is contained in:
parent
95b55bf310
commit
f927165a26
34
main.go
34
main.go
@ -36,7 +36,8 @@ Options:
|
|||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
type ResponseContent struct {
|
type PageInfo struct {
|
||||||
|
Title string `json:"title"`
|
||||||
Version struct {
|
Version struct {
|
||||||
Number int64 `json:"number"`
|
Number int64 `json:"number"`
|
||||||
} `json:"version"`
|
} `json:"version"`
|
||||||
@ -110,12 +111,12 @@ func main() {
|
|||||||
log.Fatal("URL should contains 'pageId' parameter")
|
log.Fatal("URL should contains 'pageId' parameter")
|
||||||
}
|
}
|
||||||
|
|
||||||
version, err := getPageVersion(api, pageID)
|
pageInfo, err := getPageInfo(api, pageID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = updatePage(api, pageID, version, htmlData)
|
err = updatePage(api, pageID, pageInfo, htmlData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -125,13 +126,14 @@ func main() {
|
|||||||
|
|
||||||
func updatePage(
|
func updatePage(
|
||||||
api *gopencils.Resource, pageID string,
|
api *gopencils.Resource, pageID string,
|
||||||
currentPageVersion int64, newContent []byte,
|
pageInfo PageInfo, newContent []byte,
|
||||||
) error {
|
) error {
|
||||||
nextPageVersion := currentPageVersion + 1
|
nextPageVersion := pageInfo.Version.Number + 1
|
||||||
|
|
||||||
payload := map[string]interface{}{
|
payload := map[string]interface{}{
|
||||||
"id": pageID,
|
"id": pageID,
|
||||||
"type": "page",
|
"type": "page",
|
||||||
|
"title": pageInfo.Title,
|
||||||
"version": map[string]interface{}{
|
"version": map[string]interface{}{
|
||||||
"number": nextPageVersion,
|
"number": nextPageVersion,
|
||||||
"minorEdit": false,
|
"minorEdit": false,
|
||||||
@ -161,33 +163,35 @@ func updatePage(
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getPageVersion(api *gopencils.Resource, pageID string) (int64, error) {
|
func getPageInfo(
|
||||||
request, err := api.Res("content/"+pageID, &ResponseContent{}).Get()
|
api *gopencils.Resource, pageID string,
|
||||||
|
) (PageInfo, error) {
|
||||||
|
request, err := api.Res("content/"+pageID, &PageInfo{}).Get()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return PageInfo{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if request.Raw.StatusCode == 401 {
|
if request.Raw.StatusCode == 401 {
|
||||||
return 0, fmt.Errorf("authentification failed")
|
return PageInfo{}, fmt.Errorf("authentification failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
if request.Raw.StatusCode == 404 {
|
if request.Raw.StatusCode == 404 {
|
||||||
return 0, fmt.Errorf(
|
return PageInfo{}, fmt.Errorf(
|
||||||
"page with id '%s' not found, Confluence REST API returns 404",
|
"page with id '%s' not found, Confluence REST API returns 404",
|
||||||
pageID,
|
pageID,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if request.Raw.StatusCode != 200 {
|
if request.Raw.StatusCode != 200 {
|
||||||
return 0, fmt.Errorf(
|
return PageInfo{}, fmt.Errorf(
|
||||||
"Confluence REST API returns unexpected HTTP status: %s",
|
"Confluence REST API returns unexpected HTTP status: %s",
|
||||||
request.Raw.Status,
|
request.Raw.Status,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
response := request.Response.(*ResponseContent)
|
response := request.Response.(*PageInfo)
|
||||||
|
|
||||||
return response.Version.Number, nil
|
return *response, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getConfig(path string) (zhash.Hash, error) {
|
func getConfig(path string) (zhash.Hash, error) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user