Updates to /connector/sharepoint/restore.go
Issue #2169: Publish API added to restore of Page Item.
This commit is contained in:
parent
607ca83177
commit
ca641e0116
@ -7,6 +7,7 @@ import (
|
|||||||
"runtime/trace"
|
"runtime/trace"
|
||||||
|
|
||||||
"github.com/microsoftgraph/msgraph-beta-sdk-go/models"
|
"github.com/microsoftgraph/msgraph-beta-sdk-go/models"
|
||||||
|
"github.com/microsoftgraph/msgraph-beta-sdk-go/sites"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
"github.com/alcionai/corso/src/internal/connector/graph"
|
"github.com/alcionai/corso/src/internal/connector/graph"
|
||||||
@ -283,6 +284,7 @@ func restoreSitePage(
|
|||||||
var (
|
var (
|
||||||
dii = details.ItemInfo{}
|
dii = details.ItemInfo{}
|
||||||
pageName = itemData.UUID()
|
pageName = itemData.UUID()
|
||||||
|
pageURL string
|
||||||
)
|
)
|
||||||
|
|
||||||
byteArray, err := io.ReadAll(itemData.ToReader())
|
byteArray, err := io.ReadAll(itemData.ToReader())
|
||||||
@ -296,6 +298,8 @@ func restoreSitePage(
|
|||||||
return dii, errors.Wrapf(err, "failed to create Page object %s", pageName)
|
return dii, errors.Wrapf(err, "failed to create Page object %s", pageName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// POST the Publish
|
||||||
|
// https://learn.microsoft.com/en-us/graph/api/sitepage-create?view=graph-rest-beta
|
||||||
restoredPage, err := service.Client().SitesById(siteID).Pages().Post(ctx, page, nil)
|
restoredPage, err := service.Client().SitesById(siteID).Pages().Post(ctx, page, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
sendErr := support.ConnectorStackErrorTraceWrap(
|
sendErr := support.ConnectorStackErrorTraceWrap(
|
||||||
@ -306,6 +310,23 @@ func restoreSitePage(
|
|||||||
return dii, sendErr
|
return dii, sendErr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Publish page to make visible
|
||||||
|
// See https://learn.microsoft.com/en-us/graph/api/sitepage-publish?view=graph-rest-beta
|
||||||
|
if restoredPage.GetWebUrl() == nil {
|
||||||
|
return dii, fmt.Errorf("created page %s did not return webURL from API", *restoredPage.GetId())
|
||||||
|
}
|
||||||
|
|
||||||
|
pageURL = *restoredPage.GetWebUrl()
|
||||||
|
publishRequest := sites.NewItemPagesItemPublishRequestBuilder(pageURL, service.Adapter())
|
||||||
|
|
||||||
|
err = publishRequest.Post(ctx, nil)
|
||||||
|
if err != nil {
|
||||||
|
return dii, support.ConnectorStackErrorTraceWrap(
|
||||||
|
err,
|
||||||
|
"unable to publish page ID: "+*restoredPage.GetId()+" API Error Details",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
dii.SharePoint = sharePointPageInfo(restoredPage, int64(len(byteArray)))
|
dii.SharePoint = sharePointPageInfo(restoredPage, int64(len(byteArray)))
|
||||||
|
|
||||||
return dii, nil
|
return dii, nil
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user