Skip to content

Commit 6e39d43

Browse files
committed
- Fixed form data examples
1 parent be7ffbb commit 6e39d43

File tree

3 files changed

+74
-15
lines changed

3 files changed

+74
-15
lines changed

src/openApi/v3/parser/getOperation.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ export function getOperation(
6464
operation.parametersBody = parameters.parametersBody;
6565
}
6666

67-
// TODO: form data goes wrong here: https://github.com/ferdikoomen/openapi-typescript-codegen/issues/257§
6867
if (op.requestBody) {
6968
const requestBodyDef = getRef<OpenApiRequestBody>(openApi, op.requestBody);
7069
const requestBody = getOperationRequestBody(openApi, requestBodyDef);

test/__snapshots__/index.spec.js.snap

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3090,6 +3090,7 @@ export { CollectionFormatService } from './services/CollectionFormatService';
30903090
export { ComplexService } from './services/ComplexService';
30913091
export { DefaultsService } from './services/DefaultsService';
30923092
export { DuplicateService } from './services/DuplicateService';
3093+
export { FormDataService } from './services/FormDataService';
30933094
export { HeaderService } from './services/HeaderService';
30943095
export { MultipartService } from './services/MultipartService';
30953096
export { NoContentService } from './services/NoContentService';
@@ -5116,6 +5117,40 @@ export class DuplicateService {
51165117
}"
51175118
`;
51185119

5120+
exports[`v3 should generate: ./test/generated/v3/services/FormDataService.ts 1`] = `
5121+
"/* istanbul ignore file */
5122+
/* tslint:disable */
5123+
/* eslint-disable */
5124+
import type { ModelWithString } from '../models/ModelWithString';
5125+
import type { CancelablePromise } from '../core/CancelablePromise';
5126+
import { request as __request } from '../core/request';
5127+
import { OpenAPI } from '../core/OpenAPI';
5128+
5129+
export class FormDataService {
5130+
5131+
/**
5132+
* @param parameter This is a reusable parameter
5133+
* @param formData A reusable request body
5134+
* @throws ApiError
5135+
*/
5136+
public static postFormDataService(
5137+
parameter?: string,
5138+
formData?: ModelWithString,
5139+
): CancelablePromise<void> {
5140+
return __request({
5141+
method: 'POST',
5142+
path: \`/api/v\${OpenAPI.VERSION}/formData/\`,
5143+
query: {
5144+
'parameter': parameter,
5145+
},
5146+
formData: formData,
5147+
mediaType: 'multipart/form-data',
5148+
});
5149+
}
5150+
5151+
}"
5152+
`;
5153+
51195154
exports[`v3 should generate: ./test/generated/v3/services/HeaderService.ts 1`] = `
51205155
"/* istanbul ignore file */
51215156
/* tslint:disable */
@@ -5346,15 +5381,20 @@ import { OpenAPI } from '../core/OpenAPI';
53465381
export class RequestBodyService {
53475382

53485383
/**
5384+
* @param parameter This is a reusable parameter
53495385
* @param requestBody A reusable request body
53505386
* @throws ApiError
53515387
*/
53525388
public static postRequestBodyService(
5389+
parameter?: string,
53535390
requestBody?: ModelWithString,
53545391
): CancelablePromise<void> {
53555392
return __request({
53565393
method: 'POST',
53575394
path: \`/api/v\${OpenAPI.VERSION}/requestBody/\`,
5395+
query: {
5396+
'parameter': parameter,
5397+
},
53585398
body: requestBody,
53595399
mediaType: 'application/json',
53605400
});

test/spec/v3.json

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -313,14 +313,13 @@
313313
"tags": [
314314
"RequestBody"
315315
],
316-
"requestBody": {
317-
"content": {
318-
"application/json": {
319-
"schema": {
320-
"$ref": "#/components/requestBodies/SimpleRequestBody"
321-
}
322-
}
316+
"parameters": [
317+
{
318+
"$ref": "#/components/parameters/SimpleParameter"
323319
}
320+
],
321+
"requestBody": {
322+
"$ref": "#/components/requestBodies/SimpleRequestBody"
324323
}
325324
}
326325
},
@@ -329,14 +328,13 @@
329328
"tags": [
330329
"FormData"
331330
],
332-
"requestBody": {
333-
"content": {
334-
"multipart/form-data": {
335-
"schema": {
336-
"$ref": "#/components/requestBodies/SimpleRequestBody"
337-
}
338-
}
331+
"parameters": [
332+
{
333+
"$ref": "#/components/parameters/SimpleParameter"
339334
}
335+
],
336+
"requestBody": {
337+
"$ref": "#/components/requestBodies/SimpleFormData"
340338
}
341339
}
342340
},
@@ -1288,6 +1286,28 @@
12881286
}
12891287
}
12901288
}
1289+
},
1290+
"SimpleFormData": {
1291+
"description": "A reusable request body",
1292+
"required": false,
1293+
"content": {
1294+
"multipart/form-data": {
1295+
"schema": {
1296+
"$ref": "#/components/schemas/ModelWithString"
1297+
}
1298+
}
1299+
}
1300+
}
1301+
},
1302+
"parameters": {
1303+
"SimpleParameter": {
1304+
"description": "This is a reusable parameter",
1305+
"name": "parameter",
1306+
"in": "query",
1307+
"required": false,
1308+
"schema": {
1309+
"type": "string"
1310+
}
12911311
}
12921312
},
12931313
"schemas": {

0 commit comments

Comments
 (0)