mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-10-13 16:03:43 +00:00
[kotlin] Fix defaultValue in query parameters (#22002)
This commit is contained in:
parent
67b24330c9
commit
5e8dcc9f07
@ -1113,6 +1113,22 @@ public class KotlinClientCodegen extends AbstractKotlinCodegen {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postProcessParameter(CodegenParameter parameter) {
|
||||
super.postProcessParameter(parameter);
|
||||
adjustEnumRefDefault(parameter);
|
||||
}
|
||||
|
||||
private void adjustEnumRefDefault(CodegenParameter param) {
|
||||
if (StringUtils.isEmpty(param.defaultValue) || !(param.isEnum || param.isEnumRef)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String type = StringUtils.defaultIfEmpty(param.datatypeWithEnum, param.dataType);
|
||||
param.enumDefaultValue = toEnumVarName(param.defaultValue, type);
|
||||
param.defaultValue = type + "." + param.enumDefaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postProcess() {
|
||||
System.out.println("################################################################################");
|
||||
|
@ -91,6 +91,24 @@ public class KotlinClientCodegenApiTest {
|
||||
assertFileContainsLine(lines, "suspend fun deletePet(@Path(\"petId\") petId: kotlin.Long, @Header(\"api_key\") apiKey: kotlin.String? = null)" + expectedUnitResponse);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnumDefaultForReferencedSchemaParameterJvmOkhttp4() throws IOException {
|
||||
OpenAPI openAPI = readOpenAPI("3_0/kotlin/enum-default-query.yaml");
|
||||
|
||||
KotlinClientCodegen codegen = createCodegen(ClientLibrary.JVM_OKHTTP4);
|
||||
codegen.additionalProperties().put("enumPropertyNaming", "UPPERCASE");
|
||||
|
||||
ClientOptInput input = createClientOptInput(openAPI, codegen);
|
||||
|
||||
DefaultGenerator generator = new DefaultGenerator();
|
||||
enableOnlyApiGeneration(generator);
|
||||
|
||||
List<File> files = generator.opts(input).generate();
|
||||
File statusApi = files.stream().filter(file -> file.getName().equals("StatusApi.kt")).findAny().orElseThrow();
|
||||
|
||||
assertFileContains(statusApi.toPath(), "state: PetStatus? = PetStatus.AVAILABLE");
|
||||
}
|
||||
|
||||
private static void assertFileContainsLine(List<String> lines, String line) {
|
||||
Assert.assertListContains(lines, s -> s.equals(line), line);
|
||||
}
|
||||
|
@ -0,0 +1,26 @@
|
||||
openapi: 3.0.1
|
||||
info:
|
||||
title: Enum default test
|
||||
version: 1.0.0
|
||||
paths:
|
||||
/status:
|
||||
get:
|
||||
tags:
|
||||
- Status
|
||||
operationId: getStatus
|
||||
parameters:
|
||||
- name: state
|
||||
in: query
|
||||
schema:
|
||||
$ref: '#/components/schemas/PetStatus'
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
components:
|
||||
schemas:
|
||||
PetStatus:
|
||||
type: string
|
||||
enum:
|
||||
- available
|
||||
- pending
|
||||
default: available
|
@ -52,13 +52,13 @@ try {
|
||||
| **pathDefault** | **kotlin.String**| path default | |
|
||||
| **pathNullable** | **kotlin.String**| path_nullable | |
|
||||
| **queryDefault** | **kotlin.String**| query default | [optional] [default to "available"] |
|
||||
| **queryDefaultEnum** | **kotlin.String**| query default enum | [optional] [default to B] [enum: A, B, C] |
|
||||
| **queryDefaultEnum** | **kotlin.String**| query default enum | [optional] [default to QueryDefaultEnum.B] [enum: A, B, C] |
|
||||
| **queryDefaultInt** | **java.math.BigDecimal**| query default int | [optional] [default to 3] |
|
||||
| **headerDefault** | **kotlin.String**| header default | [optional] [default to "available"] |
|
||||
| **headerDefaultEnum** | **kotlin.String**| header default enum | [optional] [default to B] [enum: A, B, C] |
|
||||
| **headerDefaultEnum** | **kotlin.String**| header default enum | [optional] [default to HeaderDefaultEnum.B] [enum: A, B, C] |
|
||||
| **headerDefaultInt** | **java.math.BigDecimal**| header default int | [optional] [default to 3] |
|
||||
| **cookieDefault** | **kotlin.String**| cookie default | [optional] [default to "available"] |
|
||||
| **cookieDefaultEnum** | **kotlin.String**| cookie default enum | [optional] [default to B] [enum: A, B, C] |
|
||||
| **cookieDefaultEnum** | **kotlin.String**| cookie default enum | [optional] [default to CookieDefaultEnum.B] [enum: A, B, C] |
|
||||
| **cookieDefaultInt** | **java.math.BigDecimal**| cookie default int | [optional] [default to 3] |
|
||||
| **queryNullable** | **kotlin.String**| query nullable | [optional] |
|
||||
| **headerNullable** | **kotlin.String**| header nullable | [optional] |
|
||||
|
@ -105,13 +105,13 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory
|
||||
* @param pathDefault path default
|
||||
* @param pathNullable path_nullable
|
||||
* @param queryDefault query default (optional, default to "available")
|
||||
* @param queryDefaultEnum query default enum (optional, default to B)
|
||||
* @param queryDefaultEnum query default enum (optional, default to QueryDefaultEnum.B)
|
||||
* @param queryDefaultInt query default int (optional, default to 3)
|
||||
* @param headerDefault header default (optional, default to "available")
|
||||
* @param headerDefaultEnum header default enum (optional, default to B)
|
||||
* @param headerDefaultEnum header default enum (optional, default to HeaderDefaultEnum.B)
|
||||
* @param headerDefaultInt header default int (optional, default to 3)
|
||||
* @param cookieDefault cookie default (optional, default to "available")
|
||||
* @param cookieDefaultEnum cookie default enum (optional, default to B)
|
||||
* @param cookieDefaultEnum cookie default enum (optional, default to CookieDefaultEnum.B)
|
||||
* @param cookieDefaultInt cookie default int (optional, default to 3)
|
||||
* @param queryNullable query nullable (optional)
|
||||
* @param headerNullable header nullable (optional)
|
||||
@ -150,13 +150,13 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory
|
||||
* @param pathDefault path default
|
||||
* @param pathNullable path_nullable
|
||||
* @param queryDefault query default (optional, default to "available")
|
||||
* @param queryDefaultEnum query default enum (optional, default to B)
|
||||
* @param queryDefaultEnum query default enum (optional, default to QueryDefaultEnum.B)
|
||||
* @param queryDefaultInt query default int (optional, default to 3)
|
||||
* @param headerDefault header default (optional, default to "available")
|
||||
* @param headerDefaultEnum header default enum (optional, default to B)
|
||||
* @param headerDefaultEnum header default enum (optional, default to HeaderDefaultEnum.B)
|
||||
* @param headerDefaultInt header default int (optional, default to 3)
|
||||
* @param cookieDefault cookie default (optional, default to "available")
|
||||
* @param cookieDefaultEnum cookie default enum (optional, default to B)
|
||||
* @param cookieDefaultEnum cookie default enum (optional, default to CookieDefaultEnum.B)
|
||||
* @param cookieDefaultInt cookie default int (optional, default to 3)
|
||||
* @param queryNullable query nullable (optional)
|
||||
* @param headerNullable header nullable (optional)
|
||||
@ -181,13 +181,13 @@ class DefaultApi(basePath: kotlin.String = defaultBasePath, client: Call.Factory
|
||||
* @param pathDefault path default
|
||||
* @param pathNullable path_nullable
|
||||
* @param queryDefault query default (optional, default to "available")
|
||||
* @param queryDefaultEnum query default enum (optional, default to B)
|
||||
* @param queryDefaultEnum query default enum (optional, default to QueryDefaultEnum.B)
|
||||
* @param queryDefaultInt query default int (optional, default to 3)
|
||||
* @param headerDefault header default (optional, default to "available")
|
||||
* @param headerDefaultEnum header default enum (optional, default to B)
|
||||
* @param headerDefaultEnum header default enum (optional, default to HeaderDefaultEnum.B)
|
||||
* @param headerDefaultInt header default int (optional, default to 3)
|
||||
* @param cookieDefault cookie default (optional, default to "available")
|
||||
* @param cookieDefaultEnum cookie default enum (optional, default to B)
|
||||
* @param cookieDefaultEnum cookie default enum (optional, default to CookieDefaultEnum.B)
|
||||
* @param cookieDefaultInt cookie default int (optional, default to 3)
|
||||
* @param queryNullable query nullable (optional)
|
||||
* @param headerNullable header nullable (optional)
|
||||
|
Loading…
x
Reference in New Issue
Block a user