Added network page and sites back-end. Split release tiles into own component.

This commit is contained in:
2019-11-09 04:43:58 +01:00
parent 708f704d1b
commit 82c9bc664a
13 changed files with 284 additions and 397 deletions

View File

@@ -41,18 +41,21 @@ async function curateRelease(release) {
site: {
id: release.site_id,
name: release.site_name,
slug: release.site_slug,
url: release.site_url,
},
studio: release.studio_id
? {
id: release.studio_id,
name: release.studio_name,
slug: release.studio_slug,
url: release.studio_url,
}
: null,
network: {
id: release.network_id,
name: release.network_name,
slug: release.network_slug,
url: release.network_url,
},
};
@@ -63,14 +66,48 @@ function curateReleases(releases) {
}
async function fetchReleases(releaseId) {
// const thumbnails = await fs.readdir(path.join(config.thumbnailPath, release.site.id.toString(), release.id.toString()));
const releases = await knex('releases')
.where(releaseId ? { 'releases.id': releaseId } : {})
.select(
'releases.*', 'sites.name as site_name', 'sites.url as site_url', 'sites.network_id',
'studios.name as studio_name', 'studios.url as studio_url',
'networks.name as network_name', 'networks.url as network_url',
'releases.*', 'sites.name as site_name', 'sites.slug as site_slug', 'sites.url as site_url', 'sites.network_id',
'studios.name as studio_name', 'sites.slug as site_slug', 'studios.url as studio_url',
'networks.name as network_name', 'networks.slug as network_slug', 'networks.url as network_url',
)
.leftJoin('sites', 'releases.site_id', 'sites.id')
.leftJoin('studios', 'releases.studio_id', 'studios.id')
.leftJoin('networks', 'sites.network_id', 'networks.id')
.orderBy([{ column: 'date', order: 'desc' }, { column: 'created_at', order: 'desc' }])
.limit(100);
return curateReleases(releases);
}
async function fetchSiteReleases(siteId, siteSlug) {
const releases = await knex('releases')
.where({ 'sites.id': siteId })
.orWhere({ 'sites.slug': siteSlug })
.select(
'releases.*', 'sites.name as site_name', 'sites.slug as site_slug', 'sites.url as site_url', 'sites.network_id',
'studios.name as studio_name', 'sites.slug as site_slug', 'studios.url as studio_url',
'networks.name as network_name', 'networks.slug as network_slug', 'networks.url as network_url',
)
.leftJoin('sites', 'releases.site_id', 'sites.id')
.leftJoin('studios', 'releases.studio_id', 'studios.id')
.leftJoin('networks', 'sites.network_id', 'networks.id')
.orderBy([{ column: 'date', order: 'desc' }, { column: 'created_at', order: 'desc' }])
.limit(100);
return curateReleases(releases);
}
async function fetchNetworkReleases(networkId, networkSlug) {
const releases = await knex('releases')
.where({ 'networks.id': networkId })
.orWhere({ 'networks.slug': networkSlug })
.select(
'releases.*', 'sites.name as site_name', 'sites.slug as site_slug', 'sites.url as site_url', 'sites.network_id',
'studios.name as studio_name', 'sites.slug as site_slug', 'studios.url as studio_url',
'networks.name as network_name', 'networks.slug as network_slug', 'networks.url as network_url',
)
.leftJoin('sites', 'releases.site_id', 'sites.id')
.leftJoin('studios', 'releases.studio_id', 'studios.id')
@@ -83,4 +120,6 @@ async function fetchReleases(releaseId) {
module.exports = {
fetchReleases,
fetchSiteReleases,
fetchNetworkReleases,
};