From 0ac02c2262c2c4dfe0e2e642ae4036229aa397b4 Mon Sep 17 00:00:00 2001 From: nichujie Date: Thu, 3 Jun 2021 01:27:17 +0800 Subject: [PATCH] fix(parse): form-data of openapi v3 --- src/client/interfaces/OperationParameters.d.ts | 1 + src/openApi/v2/parser/getOperation.ts | 1 + src/openApi/v2/parser/getOperationParameters.ts | 1 + src/openApi/v3/interfaces/OpenApiParameter.d.ts | 2 +- src/openApi/v3/parser/getContent.ts | 3 +++ src/openApi/v3/parser/getOperation.ts | 8 +++++++- src/openApi/v3/parser/getOperationParameters.ts | 7 +------ src/templates/exportService.hbs | 3 +++ 8 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/client/interfaces/OperationParameters.d.ts b/src/client/interfaces/OperationParameters.d.ts index 43419438c..4edb0812b 100644 --- a/src/client/interfaces/OperationParameters.d.ts +++ b/src/client/interfaces/OperationParameters.d.ts @@ -9,4 +9,5 @@ export interface OperationParameters { parametersCookie: OperationParameter[]; parametersHeader: OperationParameter[]; parametersBody: OperationParameter | null; + parametersFormData: OperationParameter | null; // only for V3 } diff --git a/src/openApi/v2/parser/getOperation.ts b/src/openApi/v2/parser/getOperation.ts index 51d12406b..33566a416 100644 --- a/src/openApi/v2/parser/getOperation.ts +++ b/src/openApi/v2/parser/getOperation.ts @@ -35,6 +35,7 @@ export function getOperation(openApi: OpenApi, url: string, method: string, op: parametersHeader: [...pathParams.parametersHeader], parametersCookie: [...pathParams.parametersCookie], parametersBody: pathParams.parametersBody, + parametersFormData: null, // should not be touched in V2 imports: [], errors: [], results: [], diff --git a/src/openApi/v2/parser/getOperationParameters.ts b/src/openApi/v2/parser/getOperationParameters.ts index 61f8bc234..08200aeb1 100644 --- a/src/openApi/v2/parser/getOperationParameters.ts +++ b/src/openApi/v2/parser/getOperationParameters.ts @@ -15,6 +15,7 @@ export function getOperationParameters(openApi: OpenApi, parameters: OpenApiPara parametersCookie: [], parametersHeader: [], parametersBody: null, + parametersFormData: null, }; // Iterate over the parameters diff --git a/src/openApi/v3/interfaces/OpenApiParameter.d.ts b/src/openApi/v3/interfaces/OpenApiParameter.d.ts index 7172feb7b..ed579c5f0 100644 --- a/src/openApi/v3/interfaces/OpenApiParameter.d.ts +++ b/src/openApi/v3/interfaces/OpenApiParameter.d.ts @@ -8,7 +8,7 @@ import type { OpenApiSchema } from './OpenApiSchema'; */ export interface OpenApiParameter extends OpenApiReference { name: string; - in: 'path' | 'query' | 'header' | 'formData' | 'cookie'; + in: 'path' | 'query' | 'header' | 'cookie'; description?: string; required?: boolean; nullable?: boolean; diff --git a/src/openApi/v3/parser/getContent.ts b/src/openApi/v3/parser/getContent.ts index 0a2a4f4e3..6250d89b7 100644 --- a/src/openApi/v3/parser/getContent.ts +++ b/src/openApi/v3/parser/getContent.ts @@ -26,5 +26,8 @@ export function getContent(openApi: OpenApi, content: Dictionary @see requestBody + parametersFormData: null, }; // Iterate over the parameters @@ -38,12 +39,6 @@ export function getOperationParameters(openApi: OpenApi, parameters: OpenApiPara operationParameters.imports.push(...parameter.imports); break; - case 'formData': - operationParameters.parametersForm.push(parameter); - operationParameters.parameters.push(parameter); - operationParameters.imports.push(...parameter.imports); - break; - case 'cookie': operationParameters.parametersCookie.push(parameter); operationParameters.parameters.push(parameter); diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index c45ed830d..9b01c2bf2 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -67,6 +67,9 @@ export class {{{name}}} { {{/each}} }, {{/if}} + {{#if parametersFormData}} + formData: {{{parametersFormData.name}}}, + {{/if}} {{#if parametersBody}} body: {{{parametersBody.name}}}, {{#if parametersBody.mediaType}}