Added release page.
This commit is contained in:
@@ -32,6 +32,7 @@ async function curateRelease(release) {
|
||||
site: {
|
||||
id: release.site_id,
|
||||
name: release.site_name,
|
||||
url: release.site_url,
|
||||
},
|
||||
network: {
|
||||
id: release.network_id,
|
||||
@@ -45,9 +46,10 @@ function curateReleases(releases) {
|
||||
return Promise.all(releases.map(async release => curateRelease(release)));
|
||||
}
|
||||
|
||||
async function fetchReleases() {
|
||||
async function fetchReleases(releaseId) {
|
||||
const releases = await knex('releases')
|
||||
.select('releases.*', 'sites.name as site_name', 'sites.network_id', 'networks.name as network_name', 'networks.url as network_url')
|
||||
.where(releaseId ? { 'releases.id': releaseId } : {})
|
||||
.select('releases.*', 'sites.name as site_name', 'sites.url as site_url', 'sites.network_id', 'networks.name as network_name', 'networks.url as network_url')
|
||||
.leftJoin('sites', 'releases.site_id', 'sites.id')
|
||||
.leftJoin('networks', 'sites.network_id', 'networks.id')
|
||||
.orderBy('date', 'desc')
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
const config = require('config');
|
||||
const fs = require('fs').promises;
|
||||
const path = require('path');
|
||||
|
||||
const { fetchReleases } = require('../releases');
|
||||
|
||||
async function fetchReleasesApi(req, res) {
|
||||
@@ -8,6 +12,14 @@ async function fetchReleasesApi(req, res) {
|
||||
res.render('home', { releases });
|
||||
}
|
||||
|
||||
async function fetchReleaseApi(req, res) {
|
||||
const [release] = await fetchReleases(req.params.id);
|
||||
const thumbnails = await fs.readdir(path.join(config.thumbnailPath, release.site.id.toString(), release.id.toString()));
|
||||
|
||||
res.render('release', { release, thumbnails });
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
fetchReleases: fetchReleasesApi,
|
||||
fetchRelease: fetchReleaseApi,
|
||||
};
|
||||
|
||||
@@ -6,7 +6,7 @@ const express = require('express');
|
||||
const Router = require('express-promise-router');
|
||||
const { createEngine } = require('express-react-views');
|
||||
|
||||
const { fetchReleases } = require('./releases');
|
||||
const { fetchReleases, fetchRelease } = require('./releases');
|
||||
|
||||
function initServer() {
|
||||
const app = express();
|
||||
@@ -20,6 +20,7 @@ function initServer() {
|
||||
app.engine('jsx', createEngine());
|
||||
|
||||
router.get('/', fetchReleases);
|
||||
router.get('/scene/:id', fetchRelease);
|
||||
|
||||
app.use(router);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user