UNPKG

protontype

Version:

A simple REST framework make in TypeScript

96 lines (86 loc) 2.6 kB
import { Method, Route, RouterClass, CrudRouter, UseAuth } from '../../lib'; import { RouterFunctionParams } from '../../lib/decorators/RouteConfig'; import { BodyParserMiddleware } from './../../lib/middlewares/BodyParserMiddleware'; import { GlobalRouterMiddlewareMock, RouterMiddlewareMock } from './MiddlewareMock'; import { ModelMock } from './ModelMock'; @UseAuth({ create: false, update: false, read: false, delete: false }) @RouterClass({ baseUrl: "/mocks", middlewares: [new BodyParserMiddleware(), new GlobalRouterMiddlewareMock()], model: ModelMock }) export class RouterMock extends CrudRouter { @Route({ endpoint: '/test/msg', method: Method.GET, middlewares: [new RouterMiddlewareMock()] }) routeTest(params: RouterFunctionParams) { params.res.json({ msg: "hello!", routerMidMsg: params.req.params['routerMidMsg'], globalMidMsg: params.req.header['globalMidMsg'], globalRouterMidMsg: params.req.header['globalRouterMidMsg'] }); } @Route({ endpoint: '/test/routes', method: Method.GET }) routeList(params: RouterFunctionParams) { params.res.json(this.protonApplication.getRoutesList()); } @Route({ endpoint: '/test/method', method: Method.POST }) routePost(params: RouterFunctionParams) { params.res.json({ method: 'post' }); } @Route({ endpoint: '/test/method', method: Method.DELETE }) routeDelete(params: RouterFunctionParams) { params.res.json({ method: 'delete' }); } @Route({ endpoint: '/test/method', method: Method.PATCH }) routePatch(params: RouterFunctionParams) { params.res.json({ method: 'patch' }); } @Route({ endpoint: '/test/method', method: Method.HEAD }) routeHead(params: RouterFunctionParams) { params.res.end(); } @Route({ endpoint: '/test/method', method: Method.OPTIONS }) routeOptions(params: RouterFunctionParams) { params.res.end(); } @Route({ endpoint: '/test/method', method: Method.PUT }) routePut(params: RouterFunctionParams) { params.res.json({ method: 'put' }); } @Route() customRouter(params: RouterFunctionParams) { this.router.get('/custom', (req, res) => { res.send('Custom Router'); }) } }