UNPKG

verusd-web

Version:

A Verus Blockchain library that enables a bi-directional communication with the Verus and other Verus PBaas chains.

62 lines 5.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RestApiRoutesService = void 0; class RestApiRoutesService { static generate(app, routeConfigs = [], apiToken) { if (routeConfigs[0] === undefined) { return; } console.log("🚏 Creating API routes ..."); routeConfigs.forEach((routeConfig) => { RestApiRoutesService.setRoute(app, routeConfig); }); RestApiRoutesService.addMiddleware(app, apiToken !== null && apiToken !== void 0 ? apiToken : ''); } static setRoute(app, config) { const method = config.method.trim().toLowerCase(); if (!RestApiRoutesService.allowedMethods.includes(method)) { return; } const version = 'v' + config.apiVersion.toString(); const route = `/api/${version}/${config.route}`; console.log(` >>> route ... ${method} -> ${route}`); switch (method) { case "get": app.get(route, config.controller); return; case "post": app.post(route, config.controller); return; case "delete": app.delete(route, config.controller); return; case "put": app.put(route, config.controller); return; case "patch": app.patch(route, config.controller); return; } throw new Error(`Route configuration is invalid - ${config.route}`); } static checkToken(req, res, next) { const apiKey = req.header('x-api-key'); if (apiKey && apiKey === RestApiRoutesService.apiToken) { next(); } else { res.status(401).json({ message: 'Access restricted' }); } } static addMiddleware(app, apiToken) { if (apiToken.trim() !== '') { RestApiRoutesService.apiToken = apiToken; app.use(RestApiRoutesService.checkToken); } ; } } exports.RestApiRoutesService = RestApiRoutesService; RestApiRoutesService.apiToken = ''; RestApiRoutesService.allowedMethods = ["get", "post", "put", "patch", "delete"]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzdEFwaVJvdXRlc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1Jlc3RBcGlSb3V0ZXNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLE1BQWEsb0JBQW9CO0lBRzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBWSxFQUFFLGVBQThCLEVBQUUsRUFBRSxRQUFpQjtRQUU3RSxJQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMxQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO1lBQzlDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVksRUFBRSxNQUFtQjtRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWxELElBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUNyRSxNQUFNLE9BQU8sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxNQUFNLEtBQUssR0FBRyxRQUFRLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsTUFBTSxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFcEQsUUFBTyxNQUFNLEVBQUUsQ0FBQztZQUNaLEtBQUssS0FBSztnQkFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQUMsT0FBTztZQUN0RCxLQUFLLE1BQU07Z0JBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUFDLE9BQU87WUFDeEQsS0FBSyxRQUFRO2dCQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFBQyxPQUFPO1lBQzVELEtBQUssS0FBSztnQkFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQUMsT0FBTztZQUN0RCxLQUFLLE9BQU87Z0JBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUFDLE9BQU87UUFDOUQsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZFLENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVksRUFBRSxHQUFhLEVBQUUsSUFBa0I7UUFDckUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLE1BQU0sSUFBSSxNQUFNLEtBQUssb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckQsSUFBSSxFQUFFLENBQUM7UUFDWCxDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBWSxFQUFFLFFBQWdCO1FBQ3ZELElBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLG9CQUFvQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7WUFDeEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQUEsQ0FBQztJQUNOLENBQUM7O0FBL0NMLG9EQWdEQztBQS9Da0IsNkJBQVEsR0FBRyxFQUFFLENBQUM7QUFDTCxtQ0FBYyxHQUFHLENBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBRSxDQUFDIn0=