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
JavaScript
;
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=