'use strict'; import e = require('express'); import Request = e.Request; import Response = e.Response; import {Requests as requestLib} from '../lib/request'; import {async} from 'q'; /** * /requests * get: * description: Get All Requests * responses: * 200: * description: Response after successfully getting all requests * 400: * description: Failed to get all requests * 500: * description: Unexpected server error */ async function getAll(req: Request, res: Response) { try { const reqObj = new requestLib(req.params.facilityId || '/',req['user'].username); let data = await reqObj.getAll(req.params.listName); res.send(data); } catch (error) { res.status(400).json({error: error.message}); } } /** * /requests * get: * description: Get One Request * responses: * 200: * description: Response after successfully getting request by id * 400: * description: Failed to get one request * 500: * description: Unexpected server error */ async function getOne(req: Request, res: Response) { try { const reqObj = new requestLib(req.params.facilityId || '/',req['user'].username); let data = await reqObj.getOne(req.params.listName, req.params.id); res.send(data); } catch (error) { res.status(400).json({error: error.message}); } } /** * /request * post: * description: Add Request * responses: * 200: * description: Response after successfully posting one request * 400: * description: Failed to add a request * 500: * description: Unexpected server error */ async function add(req: Request, res: Response) { try { const reqObj = new requestLib(req.params.facilityId || '/',req['user'].username); let data = await reqObj.add(req.params.listName, req.body); res.send(data); } catch (error) { res.status(400).json({error: error.message}); } } /** * /request * put: * description: Update Request * responses: * 200: * description: Response after successfully updating one request * 400: * description: Failed to update a request * 500: * description: Unexpected server error */ async function update(req: Request, res: Response) { try { const reqObj = new requestLib(req.params.facilityId || '/',req['user'].username); let data = await reqObj.update(req.params.listName, req.params.id, req.body); res.send(data); } catch (error) { res.status(400).json({error: error.message}); } } /** * /request * delete: * description: Remove Request * responses: * 200: * description: Response after successfully deleting one request * 400: * description: Failed to delete a request * 500: * description: Unexpected server error */ async function remove(req: Request, res: Response) { try { const reqObj = new requestLib(req.params.facilityId || '/',req['user'].username); let data = await reqObj.remove(req.params.listName, req.params.id); res.send(data); } catch (error) { res.status(400).json({error: error.message}); } } export const routes = [ { path: '/:listName/items', httpMethod: ['GET'], middleware: [getAll], accessLevel: 'user' }, { path: '/:listName/item/:id', httpMethod: ['GET'], middleware: [getOne], accessLevel: 'user' }, { path: '/:listName/item/:id', httpMethod: ['PUT'], middleware: [update], accessLevel: 'user' }, { path: '/:listName', httpMethod: ['POST'], middleware: [add], accessLevel: 'user' }, { path: '/:listName/item/:id', httpMethod: ['DELETE'], middleware: [remove], accessLevel: 'staff' }, { path: '/:listName/item/:id/members', httpMethod: ['PUT'], middleware: [update], accessLevel: 'user' } ];