UNPKG

parse-openapi

Version:

OpenAPI v3 parser

86 lines (85 loc) 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperationRequestBody = void 0; const getPattern_1 = require("../utils/getPattern"); const getContent_1 = require("./getContent"); const getModel_1 = require("./getModel"); const getType_1 = require("./getType"); const getOperationRequestBody = (openApi, body) => { const requestBody = { in: 'body', export: 'interface', prop: 'requestBody', name: 'requestBody', type: 'any', base: 'any', template: null, link: null, description: body.description || null, default: undefined, isDefinition: false, isReadOnly: false, isRequired: body.required === true, isNullable: body.nullable === true, imports: [], enum: [], enums: [], properties: [], mediaType: null, }; if (body.content) { const content = (0, getContent_1.getContent)(openApi, body.content); if (content) { requestBody.mediaType = content.mediaType; switch (requestBody.mediaType) { case 'application/x-www-form-urlencoded': case 'multipart/form-data': requestBody.in = 'formData'; requestBody.name = 'formData'; requestBody.prop = 'formData'; break; } if (content.schema.$ref) { const model = (0, getType_1.getType)(content.schema.$ref); requestBody.export = 'reference'; requestBody.type = model.type; requestBody.base = model.base; requestBody.template = model.template; requestBody.imports.push(...model.imports); return requestBody; } else { const model = (0, getModel_1.getModel)(openApi, content.schema); requestBody.export = model.export; requestBody.type = model.type; requestBody.base = model.base; requestBody.template = model.template; requestBody.link = model.link; requestBody.isReadOnly = model.isReadOnly; requestBody.isRequired = requestBody.isRequired || model.isRequired; requestBody.isNullable = requestBody.isNullable || model.isNullable; requestBody.format = model.format; requestBody.maximum = model.maximum; requestBody.exclusiveMaximum = model.exclusiveMaximum; requestBody.minimum = model.minimum; requestBody.exclusiveMinimum = model.exclusiveMinimum; requestBody.multipleOf = model.multipleOf; requestBody.maxLength = model.maxLength; requestBody.minLength = model.minLength; requestBody.maxItems = model.maxItems; requestBody.minItems = model.minItems; requestBody.uniqueItems = model.uniqueItems; requestBody.maxProperties = model.maxProperties; requestBody.minProperties = model.minProperties; requestBody.pattern = (0, getPattern_1.getPattern)(model.pattern); requestBody.imports.push(...model.imports); requestBody.enum.push(...model.enum); requestBody.enums.push(...model.enums); requestBody.properties.push(...model.properties); return requestBody; } } } return requestBody; }; exports.getOperationRequestBody = getOperationRequestBody;