export default()

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("&")}`));
};