unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
49 lines • 2.3 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const controller_1 = __importDefault(require("../../controller"));
const features_1 = __importDefault(require("./features"));
const environments_1 = __importDefault(require("./environments"));
const health_report_1 = __importDefault(require("./health-report"));
const variants_1 = __importDefault(require("./variants"));
const permissions_1 = require("../../../types/permissions");
const projects_schema_1 = require("../../../openapi/spec/projects-schema");
const serialize_dates_1 = require("../../../types/serialize-dates");
const create_response_schema_1 = require("../../../openapi/util/create-response-schema");
class ProjectApi extends controller_1.default {
constructor(config, services) {
super(config);
this.projectService = services.projectService;
this.openApiService = services.openApiService;
this.route({
path: '',
method: 'get',
handler: this.getProjects,
permission: permissions_1.NONE,
middleware: [
services.openApiService.validPath({
tags: ['Projects'],
operationId: 'getProjects',
responses: {
200: (0, create_response_schema_1.createResponseSchema)('projectsSchema'),
},
}),
],
});
this.use('/', new features_1.default(config, services).router);
this.use('/', new environments_1.default(config, services).router);
this.use('/', new health_report_1.default(config, services).router);
this.use('/', new variants_1.default(config, services).router);
}
async getProjects(req, res) {
const { user } = req;
const projects = await this.projectService.getProjects({
id: 'default',
}, user.id);
this.openApiService.respondWithValidation(200, res, projects_schema_1.projectsSchema.$id, { version: 1, projects: (0, serialize_dates_1.serializeDates)(projects) });
}
}
exports.default = ProjectApi;
//# sourceMappingURL=index.js.map