UNPKG

composr-cli

Version:
45 lines (36 loc) 1.82 kB
'use strict'; var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _jsonSchemaGenerator = require('json-schema-generator'); var _jsonSchemaGenerator2 = _interopRequireDefault(_jsonSchemaGenerator); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Build Responses for model */ var buildBodyResponse = function buildBodyResponse(phraseDir, phraseDirTmp, verb, phraseName, model, next) { var _model = model; if (verb === 'post' || verb === 'put') { _fs2.default.readFile(process.cwd() + '/' + phraseDir + phraseName + '.' + verb + '.body.json', function (err, file) { if (err) return next(null, model); // requestFileName example: // 'src/phraseName/phraseName.get.body.json' var requestExample = JSON.parse(file); var schema = void 0; try { schema = _fs2.default.readFileSync(process.cwd() + phraseDir + phraseName + '.' + verb + '.schema.json'); } catch (e) { schema = (0, _jsonSchemaGenerator2.default)(requestExample); } _fs2.default.writeFileSync(phraseDirTmp + phraseName + '.' + verb + '.body' + '.schema.json', (0, _stringify2.default)(schema, null, '\t')); _model[verb].doc.body = _model[verb].doc.body || {}; _model[verb].doc.body['application/json'] = _model[verb].doc.body['application/json'] || {}; _model[verb].doc.body['application/json'].schema = (0, _stringify2.default)(schema, null, '\t'); _model[verb].doc.body['application/json'].example = (0, _stringify2.default)(requestExample, null, '\t'); return next(null, _model); }); } return next(null, model); }; module.exports = buildBodyResponse;