@getanthill/datastore
Version:
Event-Sourced Datastore
28 lines • 1.92 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const middleware_1 = require("../middleware");
const controllers_1 = require("./controllers");
function routes(services, openApi) {
const { config, telemetry } = services;
const app = express_1.default.Router({ mergeParams: true });
app
.get('/', (0, middleware_1.authenticate)((0, middleware_1.getTokensByRole)(config.security.tokens, 'read')), (0, controllers_1.getModels)(services))
.get('/graph', (0, middleware_1.authenticate)((0, middleware_1.getTokensByRole)(config.security.tokens, 'read')), (0, controllers_1.getGraph)(services))
.get('/:model/schema', (0, middleware_1.authenticate)((0, middleware_1.getTokensByRole)(config.security.tokens, 'read')), (0, controllers_1.getSchema)(services));
if (config.features.api.admin !== true) {
return app;
}
telemetry.logger.info('[Feature] Admin API enabled');
app
.post('/', (0, middleware_1.authenticate)((0, middleware_1.getTokensByRole)(config.security.tokens, 'admin')), (0, controllers_1.create)(services, openApi))
.post('/:model', (0, middleware_1.authenticate)((0, middleware_1.getTokensByRole)(config.security.tokens, 'admin')), (0, controllers_1.update)(services, openApi))
.post('/:model/indexes', (0, middleware_1.authenticate)((0, middleware_1.getTokensByRole)(config.security.tokens, 'admin')), (0, controllers_1.createModelIndexes)(services))
.post('/rotate/keys', (0, middleware_1.authenticate)((0, middleware_1.getTokensByRole)(config.security.tokens, 'admin')), (0, controllers_1.rotateEncryptionKeys)(services));
return app;
}
exports.default = routes;
//# sourceMappingURL=index.js.map