import {Route, AuthRequiredMiddleware, GuestRequiredMiddleware, SessionAuthMiddleware} from '@extollo/lib' import {Home} from '../controllers/main/Home.controller' import {Login} from '../controllers/api/Login.controller' import {EditorPage} from '../controllers/api/EditorPage.controller' Route.group('/', () => { Route.get('/') .calls(Home, home => home.welcome) Route.group('/api', () => { Route.get('/') .handledBy(() => ({ success: true, })) Route.group('/editor', () => { Route.post('/page') .calls(EditorPage, page => page.save) Route.get('/page') .calls(EditorPage, page => page.load) Route.get('/pages') .calls(EditorPage, page => page.list) Route.delete('page') .calls(EditorPage, page => page.delete) }).pre(AuthRequiredMiddleware) Route.group('/login', () => { Route.post('/') .pre(GuestRequiredMiddleware) .calls(Login, login => login.login) Route.get('/status') .calls(Login, login => login.status) Route.get('/user') .pre(AuthRequiredMiddleware) .calls(Login, login => login.user) }) Route.post('/register') .pre(GuestRequiredMiddleware) .calls(Login, login => login.register) Route.post('/logout') .pre(AuthRequiredMiddleware) .calls(Login, login => login.logout) }) }).pre(SessionAuthMiddleware)