mirror of
https://github.com/ferdikoomen/openapi-typescript-codegen.git
synced 2025-12-08 20:16:21 +00:00
- Fixed reusable request body issue #359
This commit is contained in:
parent
e0c2b799e4
commit
12c46cf686
@ -19,41 +19,41 @@ export function getOperationParameters(openApi: OpenApi, parameters: OpenApiPara
|
||||
|
||||
// Iterate over the parameters
|
||||
parameters.forEach(parameterOrReference => {
|
||||
const parameter = getRef<OpenApiParameter>(openApi, parameterOrReference);
|
||||
const param = getOperationParameter(openApi, parameter);
|
||||
const parameterDef = getRef<OpenApiParameter>(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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<OpenApiRequestBody>(openApi, op.requestBody);
|
||||
const requestBody = getOperationRequestBody(openApi, requestBodyDef);
|
||||
operation.imports.push(...requestBody.imports);
|
||||
operation.parameters.push(requestBody);
|
||||
operation.parameters = operation.parameters.sort(sortByRequired);
|
||||
|
||||
@ -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<OpenApiParameter>(openApi, parameterOrReference);
|
||||
const param = getOperationParameter(openApi, parameter);
|
||||
const parameterDef = getRef<OpenApiParameter>(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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<void> {
|
||||
|
||||
const result = await __request({
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user