diff --git a/src/openApi/v2/parser/getOperationParameters.ts b/src/openApi/v2/parser/getOperationParameters.ts index 073c3822..60b8248b 100644 --- a/src/openApi/v2/parser/getOperationParameters.ts +++ b/src/openApi/v2/parser/getOperationParameters.ts @@ -19,41 +19,41 @@ export function getOperationParameters(openApi: OpenApi, parameters: OpenApiPara // Iterate over the parameters parameters.forEach(parameterOrReference => { - const parameter = getRef(openApi, parameterOrReference); - const param = getOperationParameter(openApi, parameter); + const parameterDef = getRef(openApi, parameterOrReference); + const parameter = getOperationParameter(openApi, parameterDef); // We ignore the "api-version" param, since we do not want to add this // as the first / default parameter for each of the service calls. - if (param.prop !== 'api-version') { + if (parameter.prop !== 'api-version') { switch (parameter.in) { case 'path': - operationParameters.parametersPath.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersPath.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'query': - operationParameters.parametersQuery.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersQuery.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'header': - operationParameters.parametersHeader.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersHeader.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'formData': - operationParameters.parametersForm.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersForm.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'body': - operationParameters.parametersBody = param; - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersBody = parameter; + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; } } diff --git a/src/openApi/v3/parser/getOperation.ts b/src/openApi/v3/parser/getOperation.ts index 55985f79..cee49988 100644 --- a/src/openApi/v3/parser/getOperation.ts +++ b/src/openApi/v3/parser/getOperation.ts @@ -2,6 +2,7 @@ import { Operation } from '../../../client/interfaces/Operation'; import { OperationParameters } from '../../../client/interfaces/OperationParameters'; import { OpenApi } from '../interfaces/OpenApi'; import { OpenApiOperation } from '../interfaces/OpenApiOperation'; +import { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody'; import { getComment } from './getComment'; import { getOperationErrors } from './getOperationErrors'; import { getOperationName } from './getOperationName'; @@ -11,6 +12,7 @@ import { getOperationRequestBody } from './getOperationRequestBody'; import { getOperationResponseHeader } from './getOperationResponseHeader'; import { getOperationResponses } from './getOperationResponses'; import { getOperationResults } from './getOperationResults'; +import { getRef } from './getRef'; import { getServiceClassName } from './getServiceClassName'; import { sortByRequired } from './sortByRequired'; @@ -57,7 +59,8 @@ export function getOperation(openApi: OpenApi, url: string, method: string, op: } if (op.requestBody) { - const requestBody = getOperationRequestBody(openApi, op.requestBody); + const requestBodyDef = getRef(openApi, op.requestBody); + const requestBody = getOperationRequestBody(openApi, requestBodyDef); operation.imports.push(...requestBody.imports); operation.parameters.push(requestBody); operation.parameters = operation.parameters.sort(sortByRequired); diff --git a/src/openApi/v3/parser/getOperationParameters.ts b/src/openApi/v3/parser/getOperationParameters.ts index 4dcd86a8..58a90f8c 100644 --- a/src/openApi/v3/parser/getOperationParameters.ts +++ b/src/openApi/v3/parser/getOperationParameters.ts @@ -14,46 +14,46 @@ export function getOperationParameters(openApi: OpenApi, parameters: OpenApiPara parametersForm: [], parametersCookie: [], parametersHeader: [], - parametersBody: null, + parametersBody: null, // Not used in V3 -> @see requestBody }; // Iterate over the parameters parameters.forEach(parameterOrReference => { - const parameter = getRef(openApi, parameterOrReference); - const param = getOperationParameter(openApi, parameter); + const parameterDef = getRef(openApi, parameterOrReference); + const parameter = getOperationParameter(openApi, parameterDef); // We ignore the "api-version" param, since we do not want to add this // as the first / default parameter for each of the service calls. - if (param.prop !== 'api-version') { - switch (parameter.in) { + if (parameter.prop !== 'api-version') { + switch (parameterDef.in) { case 'path': - operationParameters.parametersPath.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersPath.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'query': - operationParameters.parametersQuery.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersQuery.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'formData': - operationParameters.parametersForm.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersForm.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'cookie': - operationParameters.parametersCookie.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersCookie.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; case 'header': - operationParameters.parametersHeader.push(param); - operationParameters.parameters.push(param); - operationParameters.imports.push(...param.imports); + operationParameters.parametersHeader.push(parameter); + operationParameters.parameters.push(parameter); + operationParameters.imports.push(...parameter.imports); break; } } diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 8dc9df78..b1d307ac 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -4937,6 +4937,7 @@ exports[`v3 should generate: ./test/result/v3/services/RequestBodyService.ts 1`] /* tslint:disable */ /* eslint-disable */ +import { ModelWithString } from '../models/ModelWithString'; import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -4944,11 +4945,11 @@ import { OpenAPI } from '../core/OpenAPI'; export class RequestBodyService { /** - * @param requestBody + * @param requestBody A reusable request body * @throws ApiError */ public static async postRequestBodyService( - requestBody?: any, + requestBody?: ModelWithString, ): Promise { const result = await __request({