From 860fd26449e5e0786ab8cc67ac83af914aa606c2 Mon Sep 17 00:00:00 2001 From: Benedikt Radtke Date: Tue, 2 Jul 2024 11:20:29 +0200 Subject: [PATCH] Fix x-www-form-urlencoded date-time string parameters (#18898) As mentioned in #13841, date-time parameters in request bodies are not ISO formatted, which breaks with certain webservers. This commit invokes `toISOString()` for date-time body parameters like it is done for queryParameters. Fixes #13841. --- .../src/main/resources/typescript-fetch/apis.mustache | 5 +++++ .../typescript-fetch/builds/default-v3.0/apis/FakeApi.ts | 2 +- .../builds/snakecase-discriminator/apis/FakeApi.ts | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache index 83b36941422..fef5aff07b0 100644 --- a/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache @@ -252,6 +252,10 @@ export class {{classname}} extends runtime.BaseAPI { {{/isArray}} {{^isArray}} if (requestParameters['{{paramName}}'] != null) { + {{#isDateTimeType}} + formParams.append('{{baseName}}', (requestParameters['{{paramName}}'] as any).toISOString()); + {{/isDateTimeType}} + {{^isDateTimeType}} {{#isPrimitiveType}} formParams.append('{{baseName}}', requestParameters['{{paramName}}'] as any); {{/isPrimitiveType}} @@ -262,6 +266,7 @@ export class {{classname}} extends runtime.BaseAPI { formParams.append('{{baseName}}', new Blob([JSON.stringify(requestParameters['{{paramName}}'])], { type: "application/json", })); {{/withoutRuntimeChecks}} {{/isPrimitiveType}} + {{/isDateTimeType}} } {{/isArray}} diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts index 484c15265f5..12df4e51387 100644 --- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts +++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/apis/FakeApi.ts @@ -722,7 +722,7 @@ export class FakeApi extends runtime.BaseAPI { } if (requestParameters['dateTime'] != null) { - formParams.append('dateTime', requestParameters['dateTime'] as any); + formParams.append('dateTime', (requestParameters['dateTime'] as any).toISOString()); } if (requestParameters['password'] != null) { diff --git a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts index dd1a525ac39..23e46bbf742 100644 --- a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts +++ b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/apis/FakeApi.ts @@ -663,7 +663,7 @@ export class FakeApi extends runtime.BaseAPI { } if (requestParameters['dateTime'] != null) { - formParams.append('dateTime', requestParameters['dateTime'] as any); + formParams.append('dateTime', (requestParameters['dateTime'] as any).toISOString()); } if (requestParameters['password'] != null) {