import {Route, SessionAuthMiddleware} from '@extollo/lib' import {Home} from '../controllers/Home.controller' import {PageView} from '../middlewares/PageView.middleware' import {Snippets} from '../controllers/Snippets.controller' import {GoLinks} from '../controllers/GoLinks.controller' import {Feed} from '../controllers/Feed.controller' import {LoadSnippet} from '../middlewares/parameters/LoadSnippet.middleware' import {LoadFeedPosts} from '../middlewares/parameters/LoadFeedPosts.middleware' Route .group('/', () => { Route.get('/') .parameterMiddleware(LoadFeedPosts) .calls(Home, home => home.welcome) .alias('home') Route.get('/technical') .calls(Home, home => home.technical) Route.get('/analytics/opt-out') .calls(Home, home => home.optOutPrompt) .alias('opt-out-prompt') Route.post('/analytics/opt-out') .calls(Home, home => home.optOut) .alias('opt-out') Route.get('/feed') .parameterMiddleware(LoadFeedPosts, {all: true}) .calls(Feed, feed => feed.feed) .alias('feed') Route.get('/snippet/:slug') .parameterMiddleware(LoadSnippet) .calls(Snippets, snippets => snippets.viewSnippet) Route.any('/go/:short') .calls(GoLinks, go => go.launch) Route.get('/favicon.ico') .calls(Home, home => home.favicon) }) .pre(SessionAuthMiddleware) .pre(PageView)