adding paged

develop
HerrHase 2 years ago
parent 8c165e3121
commit 19a4579134

@ -10,7 +10,7 @@ const server = fastify()
/**
* Add liquidjs
* add liquidjs
*
*
*/
@ -33,9 +33,10 @@ server.register(view, {
/**
* adding preHandler
*
*
*/
import SettingsStore from './stores/settings.js'
import SettingsStore from './stores/Settings.js'
// getting options from directus add to all views
server.addHook('preHandler', async function (request, response) {
@ -48,21 +49,35 @@ server.addHook('preHandler', async function (request, response) {
})
// check url for paged
server.addHook('preHandler', async function (request, response) {
server.addHook('onRequest', async function (request, response) {
const url = request.url
const url = new URL(request.params.url)
const pathname = url.pathname.split('/')
let pathname = url.split('/')
pathname.shift()
// default value for paged
let paged = 1
// check if pathname has values
if (pathname.length > 0) {
const result = pathname[pathname.length - 1]
// try to get number
const result = Number(pathname[pathname.length - 1])
// is result is integer
if (Number.isInteger(result)) {
paged = result
// remove last element
pathname.pop()
// @TODO change, thats looks strange
if (pathname.length > 0) {
request.raw.url = pathname.join('/')
} else {
request.raw.url = '/'
}
}
}
@ -72,7 +87,12 @@ server.addHook('preHandler', async function (request, response) {
}
})
// routing
/**
* routing
*
*
*/
import commentHttp from './http/api/comment.js'

@ -10,7 +10,7 @@
*/
const directusResponseHandler = {
async one(entity, response) {
single(entity, response) {
// if data is empty redirect to 404
if (entity.data.length === 0) {

@ -1,4 +1,4 @@
import CommentStore from './../stores/comment.js'
import CommentStore from './../../stores/comment.js'
import path from 'path'
/**

@ -28,9 +28,8 @@ export default async function(fastify, opts) {
const pageStore = new PageStore()
// getting single page
let page = await pageStore.findOneByPermalink(request.url)
directusResponseHandler.getOne(page, response)
const page = await pageStore.findOneByPermalink(request.url)
response.page = directusResponseHandler.single(page, response)
})
/**
@ -42,7 +41,7 @@ export default async function(fastify, opts) {
*/
fastify.get('/*', async function(request, response) {
return response.view('../frontend/views/templates/page/' + response.page.data.template, {
'page' : page
'page' : response.page
})
})
}

@ -38,7 +38,7 @@ export default async function(fastify, opts) {
*
*/
fastify.get('/:slug([-a-zA-Z0-9]{0,255})', async function(request, response) {
response.view('../frontend/views/templates/post/' + response.post.data..template, {
response.view('../frontend/views/templates/post/' + response.post.data.template, {
'page' : post
})
})

@ -45,4 +45,4 @@ class CommentStore extends DirectusAbstractStore {
}
export default PageStore
export default CommentStore
Loading…
Cancel
Save