UNPKG

alb3rt-core

Version:
54 lines (45 loc) 1.55 kB
const responder = require('./common/responder'), parser = require('./common/parser'), logger = require('../logger'), endpoints = [ 'healthcheck', 'settings' ], FILE_ID = 'api'; class Api { constructor() { this.responder = responder; this.parser = parser; this.resources = {}; endpoints.forEach(endpoint => { this.resources[endpoint] = require('./resources/' + endpoint); }); this.extend = this.extend.bind(this); this.handle = this.handle.bind(this); } extend(endpoint, resource) { if (!this.resources[endpoint]) { logger.log(FILE_ID, `Extending API with ${endpoint}`); this.resources[endpoint] = resource; } } handle(request, response) { const resource = request.params ? request.params.resource : undefined, isApiRoute = request.url.indexOf('/api/') !== -1, requestMethod = request.method.toLowerCase(); // if (!access.isAuthorized(request.headers)) { // this.responder.rejectUnauthorized(response); // return; // } if (isApiRoute && resource) { if (this.resources[resource] && this.resources[resource][requestMethod]) { this.resources[resource][requestMethod](request, response); } else { this.responder.reject(response); } } else { this.responder.reject(response); } } } module.exports = new Api();