'use strict'; const knex = require('./knex'); async function curateSite(site) { const network = await knex('network').where({ id: site.network_id }); return { id: site.id, name: site.name, url: site.url, description: site.description, slug: site.slug, network: { id: network.id, name: network.name, url: network.url, description: network.description, slug: network.slug, }, }; } function curateSites(releases) { return Promise.all(releases.map(async site => curateSite(site))); } async function fetchSites(siteId, siteSlug) { const releases = await knex('sites') .where({ id: siteId }) .orWhere({ slug: siteSlug }) .limit(100); return curateSites(releases); } async function fetchSitesFromReleases() { const releases = await knex('releases') .select('site_id', '') .leftJoin('sites', 'sites.id', 'releases.site_id') .groupBy('sites.id') .limit(100); return curateSites(releases); } module.exports = { fetchSites, fetchSitesFromReleases, };