diff --git a/pkg/confluence/api.go b/pkg/confluence/api.go index d75ae45..fea4f5b 100644 --- a/pkg/confluence/api.go +++ b/pkg/confluence/api.go @@ -61,6 +61,7 @@ type AttachmentInfo struct { Comment string `json:"comment"` } `json:"metadata"` Links struct { + Context string `json:"context"` Download string `json:"download"` } `json:"_links"` } @@ -320,6 +321,9 @@ func getAttachmentPayload(name, comment, path string) (*form, error) { func (api *API) GetAttachments(pageID string) ([]AttachmentInfo, error) { result := struct { + Links struct { + Context string `json:"context"` + } `json:"_links"` Results []AttachmentInfo `json:"results"` }{} @@ -338,6 +342,14 @@ func (api *API) GetAttachments(pageID string) ([]AttachmentInfo, error) { return nil, newErrorStatusNotOK(request) } + for i, info := range result.Results { + if info.Links.Context == "" { + info.Links.Context = result.Links.Context + } + + result.Results[i] = info + } + return result.Results, nil } diff --git a/pkg/mark/attachment.go b/pkg/mark/attachment.go index 922b1ff..79d8b7d 100644 --- a/pkg/mark/attachment.go +++ b/pkg/mark/attachment.go @@ -7,6 +7,7 @@ import ( "io" "net/url" "os" + "path" "path/filepath" "sort" "strings" @@ -74,7 +75,10 @@ func ResolveAttachments( ) attach.ID = remote.ID - attach.Link = remote.Links.Download + attach.Link = path.Join( + remote.Links.Context, + remote.Links.Download, + ) found = true @@ -111,7 +115,10 @@ func ResolveAttachments( } attach.ID = info.ID - attach.Link = info.Links.Download + attach.Link = path.Join( + info.Links.Context, + info.Links.Download, + ) creating[i] = attach } @@ -134,7 +141,10 @@ func ResolveAttachments( ) } - attach.Link = info.Links.Download + attach.Link = path.Join( + info.Links.Context, + info.Links.Download, + ) updating[i] = attach }