diff --git a/src/internal/connector/sharepoint/site_page.go b/src/internal/connector/sharepoint/site_page.go new file mode 100644 index 000000000..e7d4fbf8a --- /dev/null +++ b/src/internal/connector/sharepoint/site_page.go @@ -0,0 +1,39 @@ +package sharepoint + +import ( + "context" + + bmodel "github.com/microsoftgraph/msgraph-beta-sdk-go/models" + + "github.com/alcionai/corso/src/internal/connector/graph" + "github.com/alcionai/corso/src/internal/connector/support" + "github.com/alcionai/corso/src/pkg/account" +) + +// GetSitePages retrieves a collection of Pages related to the give Site. +// Returns error if error experienced during the call +func GetSitePage( + ctx context.Context, + creds account.M365Config, + siteID string, + pages []string, +) ([]bmodel.SitePageable, error) { + adpt, err := graph.CreateBetaAdapter(creds.AzureTenantID, creds.AzureClientID, creds.AzureClientSecret) + if err != nil { + return nil, support.ConnectorStackErrorTraceWrap(err, "fetching beta adapter") + } + + service := graph.NewBetaService(adpt) + col := make([]bmodel.SitePageable, 0) + + for _, entry := range pages { + page, err := service.Client().SitesById(siteID).PagesById(entry).Get(ctx, nil) + if err != nil { + return nil, support.ConnectorStackErrorTraceWrap(err, "fetching page: "+entry) + } + + col = append(col, page) + } + + return col, nil +}