import path from 'path' import PageStore from './../stores/Page.js' import directusResponseHandler from './../handlers/directusResponse.js' /** * page * * @author Björn Hase * @license http://opensource.org/licenses/MIT The MIT License * @link https://gitea.node001.net/HerrHase/super-fastify-directus.git * */ export default async function(fastify, opts) { /** * prehandler for all routes * * @param {[type]} request * @param {[type]} reponse * @param {Function} done * @return {[type]} */ fastify.addHook('preHandler', async function(request, response) { const pageStore = new PageStore() // getting single page const page = await pageStore.findOneByPermalink(request.url) response.page = directusResponseHandler.single(page, response) }) /** * handle single page * * @param {object} request * @param {object} response * */ fastify.get('/*', async function(request, response) { return response.view('../frontend/views/templates/page/' + response.page.data.template, { 'page' : response.page }) }) }