in tools/gsuite-scanner/src/data/content.ts [30:54]
export default (getCreds: GetCredentialsDelegate) => async (config: IConfigSchema, siteName: string): Promise<ISiteContent[]> => {
log(`Reading content for site ${siteName}`);
const creds = await getCreds(["https://sites.google.com/feeds"]);
const siteContentFeedReader = createFeedReader<ISiteContent>(creds, (node: any) => ({
author: node.author[0],
category: node.category[0].$.label,
id: node.id[0],
links: (<any[]>node.link).map(n => ({ rel: n.$.rel, type: n.$.type, href: n.$.href })),
pageName: node["sites:pageName"] ? node["sites:pageName"][0] : "",
title: node.title[0],
updated: new Date(node.updated[0]),
}));
const baseUrl = `https://sites.google.com/feeds/content/${config.domain}/${siteName}`;
const params = [
`max-results=${config.maxResultsPerPage}`,
// fields not currently supported
// "fields=link[@rel='next'],entry(id,published,updated,title,category,link)",
];
return read(siteContentFeedReader(`${baseUrl}?${params.join("&")}`));
};