Skip to content

Commit

Permalink
Set parameter schema base on schema or array of the @parameter annota…
Browse files Browse the repository at this point in the history
…tion
  • Loading branch information
coder-hugo committed Apr 30, 2024
1 parent 616350b commit 3bb9cd9
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,18 @@ public static Parameter applyAnnotations(
if (content.isPresent()) {
parameter.setContent(content.get());
parameter.setSchema(null);
} else {
Class<?> schemaImplementation = p.schema().implementation();
boolean isArray = false;
if (schemaImplementation == Void.class) {
schemaImplementation = p.array().schema().implementation();
if (schemaImplementation != Void.class) {
isArray = true;
}
}
if (p.schema().implementation() != Void.class || isArray) {
AnnotationsUtils.getSchema(p.schema(), p.array(), isArray, schemaImplementation, components, jsonViewAnnotation).ifPresent(parameter::setSchema);
}
}
setParameterStyle(parameter, p);
setParameterExplode(parameter, p);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,17 @@ public class Parameters31Resource {
})
@Consumes({"application/json", "application/xml"})
public Parameters31Resource.SubscriptionResponse subscribe(@Parameter(description = "idParam")
@QueryParam("id") final String id) {
@QueryParam("id") final String id,
@Parameter(schema = @Schema(implementation = SubscriptionType.class))
@QueryParam("enumStringParameter") final String enumStringParameter) {
return null;
}

public static class SubscriptionResponse {
public String subscriptionId;
}

enum SubscriptionType {
EMAIL, SMS, PHONE_CALL
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,17 @@ public class ParametersResource {
})
@Consumes({"application/json", "application/xml"})
public ParametersResource.SubscriptionResponse subscribe(@Parameter(description = "idParam")
@QueryParam("id") final String id) {
@QueryParam("id") final String id,
@Parameter(schema = @Schema(implementation = SubscriptionType.class))
@QueryParam("enumStringParameter") final String enumStringParameter) {
return null;
}

static class SubscriptionResponse {
public String subscriptionId;
}

enum SubscriptionType {
EMAIL, SMS, PHONE_CALL
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -822,6 +822,14 @@ paths:
description: idParam
schema:
type: string
- name: enumStringParameter
in: query
schema:
type: string
enum:
- EMAIL
- SMS
- PHONE_CALL
responses:
default:
description: test description
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,14 @@ paths:
description: idParam
schema:
type: string
- name: enumStringParameter
in: query
schema:
type: string
enum:
- EMAIL
- SMS
- PHONE_CALL
responses:
default:
description: test description
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,14 @@ paths:
description: idParam
schema:
type: string
- name: enumStringParameter
in: query
schema:
type: string
enum:
- EMAIL
- SMS
- PHONE_CALL
responses:
default:
description: test description
Expand Down

0 comments on commit 3bb9cd9

Please sign in to comment.