import express from 'express'; import { raw } from 'body-parser'; import cors from 'cors'; import config from 'config'; import debug from 'debug'; const log = debug('http'); import serverRenderer from './middleware/renderer'; import event from './middleware/event'; import oembed from './middleware/oembed'; import urlExpand from './middleware/urlexpand'; const PORT = 8081; import path from 'path'; import { webhook, webhookPath } from './durov'; // initialize the application and create the routes const app = express(); app.use(raw()); app.use(cors()); const router = express.Router(); router.post('/api/sender', event); router.get('/api/oembed', oembed); router.get('/api/urlexpand', urlExpand); const durov_webhook = webhookPath(); if (durov_webhook) { router.post(`/api/${durov_webhook}`, webhook); } router.use('^/$', serverRenderer); const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'public'); // other static resources should just be served as they are router.use(express.static( STATIC_ROOT, { maxAge: '30d' }, )); router.use('*', serverRenderer); app.use(router); // start the app app.listen(PORT, (error) => { if (error) { return console.log('something bad happened', error); } log('listening on ' + PORT + '...'); });