Skip to content

Instantly share code, notes, and snippets.

@r-k-b
Last active October 25, 2016 08:27
Show Gist options
  • Save r-k-b/c0aa630475338c2c63bd66705593af05 to your computer and use it in GitHub Desktop.
Save r-k-b/c0aa630475338c2c63bd66705593af05 to your computer and use it in GitHub Desktop.
Extract blog data from Sharepoint
(function(){
var mutateResults = [];
var urlPrefix = 'https://wnswlhd.health.nsw.gov.au/In-the-media';
function transform(result) {
return {
id: result.ID,
title: result.Title,
url: `${urlPrefix}/Lists/Posts/Post.aspx?ID=${result.ID}`,
}
}
function fetcher(url){
return $.ajax({
url: url,
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
}
});
}
function getFirstPage (blogUrlName) {
var host = _spPageContextInfo.webAbsoluteUrl;
return fetcher(
host + "/" + blogUrlName + "/_api/web/lists/getbytitle('Posts')/items?$Select=Title,Id&$orderby=PublishedDate desc"
)
}
function getNextPage(response) {
var hasLength = false;
try {
hasLength = response.d.results.length > 0;
} catch(e) {
}
if (hasLength) {
mutateResults.push( ...response.d.results);
}
if (response.d.__next) {
return fetcher(response.d.__next).then(getNextPage);
}
var transformed = mutateResults.map(transform);
console.log(mutateResults);
console.log(transformed);
debugger; // use chrome's `copy()` function to get mutateResults to clipboard
return 'done.';
}
getFirstPage(
'in-the-media'
// 'our-health-blog'
).then(getNextPage);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment