routing-controllers-openapi-extended
Version:
Runtime Swagger v2 / OpenAPI v2 specification generation for routing-controllers
41 lines • 3.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _ = require("lodash");
const storage_1 = require("../storage");
const common_1 = require("./common");
const TRANSFORM_REQUIRED_PROPERTIES = new Set(['statusCode', 'schema']);
function parseResponseEntry(response) {
const responseObject = Object.keys(response).reduce((acc, key) => {
if (!TRANSFORM_REQUIRED_PROPERTIES.has(key)) {
acc[key] = response[key];
}
return acc;
}, {});
if (response.schema) {
responseObject.schema = common_1.resolveSchema(response.schema);
}
return {
[response.statusCode]: responseObject
};
}
function getStatusCode(route) {
const successMeta = _.find(route.responseHandlers, { type: 'success-code' });
return successMeta ? successMeta.value + '' : '200';
}
exports.getStatusCode = getStatusCode;
function getResponses(route) {
const { target, method } = route.action;
const successStatus = getStatusCode(route);
const responseEntries = storage_1.getStorage().filterResponseEntriesByTarget(target, method);
const customResponses = responseEntries.reduce((acc, response) => {
return _.merge(acc, parseResponseEntry(response));
}, {});
const defaultResponse = {
[successStatus]: {
description: 'Successful response'
}
};
return _.merge(defaultResponse, customResponses);
}
exports.getResponses = getResponses;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2VyL3Jlc3BvbnNlUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNEJBQTZCO0FBQzdCLHdDQUF3QztBQUV4QyxxQ0FBeUM7QUFFekMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBRXhFLFNBQVMsa0JBQWtCLENBQUMsUUFBOEI7SUFDdEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDN0QsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDLEVBQUUsRUFBNEIsQ0FBQyxDQUFDO0lBRWpDLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNqQixjQUFjLENBQUMsTUFBTSxHQUFHLHNCQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFEO0lBRUQsT0FBTztRQUNILENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFHLGNBQWM7S0FDekMsQ0FBQTtBQUNMLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsS0FBWTtJQUN0QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFBO0lBQzVFLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ3ZELENBQUM7QUFIRCxzQ0FHQztBQUVELFNBQWdCLFlBQVksQ0FBQyxLQUFZO0lBQ3JDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDMUMsTUFBTSxlQUFlLEdBQTJCLG9CQUFVLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0csTUFBTSxlQUFlLEdBQVEsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNsRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ04sTUFBTSxlQUFlLEdBQUc7UUFDcEIsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNiLFdBQVcsRUFBRSxxQkFBcUI7U0FDckM7S0FDSixDQUFBO0lBRUQsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBZEQsb0NBY0MifQ==