diff --git a/src/routes/sitemap.js b/src/routes/sitemap.js index 206eee0f..701d1333 100644 --- a/src/routes/sitemap.js +++ b/src/routes/sitemap.js @@ -1,12 +1,12 @@ -import sitemap from 'sitemap'; -import route from 'koa-route'; -import {c} from '../core/db'; -import {getPageUrls as pages} from '../core/pages'; +const sitemap = require('sitemap') +const route = require('koa-route') +const {c} = require('../core/db') +const {getPageUrls: pages} = require('../core/pages') -import {homeUrl, sitemapCacheTime} from '../config'; -import menu from '../models/menu'; +const {homeUrl, sitemapCacheTime} = require('../config') +const menu = require('../models/menu') -export default function () { +module.exports = function () { return route.get('/sitemap.xml', async ctx => { let urls = await Promise.all([ getMenuUrls(), @@ -14,19 +14,19 @@ export default function () { getGalleryUrls(), getTeacherUrls(), getArticleUrls(), - ]); - urls = urls.reduce((urls, i) => urls.concat(i)); + ]) + urls = urls.reduce((urls, i) => urls.concat(i)) let map = sitemap.createSitemap({ hostname: homeUrl, cacheTime: sitemapCacheTime, urls: urls - }); + }) - ctx.set('Content-Type', 'application/xml'); - ctx.body = map.toString(); + ctx.set('Content-Type', 'application/xml') + ctx.body = map.toString() }) -}; +} async function getMenuUrls(frequency = 'daily') { return menu @@ -34,52 +34,52 @@ async function getMenuUrls(frequency = 'daily') { .map(i => ({ url: i.url, changefreq: frequency - })); + })) } async function getPageUrls(frequency = 'daily') { - const ps = await pages(); + const ps = await pages() return ps.map(i => ({ url: i.url, changefreq: frequency - })); + })) } async function getGalleryUrls() { let docs = await c('albums') .find({}) - .toArray(); + .toArray() return docs.map(i => { return { url: `/album/${i.id}`, changefreq: 'monthly' } - }); + }) } async function getTeacherUrls() { let docs = await c('collective') .find({}) - .toArray(); + .toArray() return docs.map(i => { return { url: `/teacher/${i.id}`, changefreq: 'monthly' } - }); + }) } async function getArticleUrls() { let docs = await c('articles') .find({}) - .toArray(); + .toArray() return docs.map(i => { return { url: `/article/${i.id}`, changefreq: 'monthly' } - }); + }) } diff --git a/src/server.js b/src/server.js index 14899f70..df2642af 100644 --- a/src/server.js +++ b/src/server.js @@ -13,7 +13,7 @@ import bodyParser from 'koa-bodyparser' import apiV1 from 'hudozka-api-v1' import {redirectionTable} from './config' -import {routes, queryObject} from './routes' +import {queryObject} from './routes' import {redirect} from './routes/redirect' import {services as serviceKeys, authChecker} from './core/service' import handlebars from 'handlebars' @@ -28,6 +28,8 @@ const teachers = require('./routes/teachers') const documents = require('./routes/documents') const document = require('./routes/document') const schedule = require('./routes/schedule') +const pages = require('./routes/pages') +const sitemap = require('./routes/sitemap') const dirPublic = path.join(__dirname, '../public') const dirTemplates = path.join(__dirname, 'templates') @@ -66,6 +68,8 @@ export default function (store) { app.use(queryObject()) app.use(error.notFound(config.view404)) + app.use(sitemap()) + app.use(home.getHome(5)) app.use(gallery.getGallery()) app.use(article.getArticles(5)) @@ -76,7 +80,7 @@ export default function (store) { app.use(documents.getDocuments()) app.use(document.getDocument()) app.use(schedule.getSchedule()) - app.use(routes(store)) + app.use(pages()) return Server(app.callback()) }