Skip to content

Commit

Permalink
fix: Some fixes for OpenAPI patches
Browse files Browse the repository at this point in the history
  • Loading branch information
peacekeeper committed Apr 10, 2024
1 parent 302a76e commit 693436d
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 34 deletions.
3 changes: 1 addition & 2 deletions openapi/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -426,8 +426,7 @@ components:
SecretVerificationMethodVerificationMethodTemplate:
type: array
items:
oneOf:
- $ref: "#/components/schemas/VerificationMethodTemplate"
$ref: "#/components/schemas/VerificationMethodTemplate"
RequestSecret:
description: This input field contains an object with DID controller keys
and other secrets needed for performing the DID operation. See
Expand Down
2 changes: 1 addition & 1 deletion uni-registrar-core/src/main/patches/DidDocument.java.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/main/java/uniregistrar/openapi/model/DidDocument.java 2024-04-09 18:30:31.424600307 +0200
+++ src/main/java/uniregistrar/openapi/model/DidDocument.java.patched 2024-04-09 18:31:14.092762096 +0200
+++ src/main/java/uniregistrar/openapi/model/DidDocument.java.changed 2024-04-09 18:31:14.092762096 +0200
@@ -47,7 +47,7 @@
DidDocument.JSON_PROPERTY_SERVICE
})
Expand Down
2 changes: 1 addition & 1 deletion uni-registrar-core/src/main/patches/DidState.java.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/main/java/uniregistrar/openapi/model/DidState.java 2024-04-09 18:30:27.916587018 +0200
+++ src/main/java/uniregistrar/openapi/model/DidState.java.patched 2024-04-09 18:31:19.292781832 +0200
+++ src/main/java/uniregistrar/openapi/model/DidState.java.changed 2024-04-09 18:31:19.292781832 +0200
@@ -64,7 +64,7 @@
@JsonSubTypes.Type(value = DidStateWait.class, name = "wait"),
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/main/java/uniregistrar/openapi/model/RequestOptions.java 2024-04-09 18:30:37.128621920 +0200
+++ src/main/java/uniregistrar/openapi/model/RequestOptions.java.patched 2024-04-09 18:31:24.856802953 +0200
+++ src/main/java/uniregistrar/openapi/model/RequestOptions.java.changed 2024-04-09 18:31:24.856802953 +0200
@@ -49,7 +49,7 @@
RequestOptions.JSON_PROPERTY_REQUEST_VERIFICATION_METHOD
})
Expand Down
2 changes: 1 addition & 1 deletion uni-registrar-core/src/main/patches/Secret.java.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/main/java/uniregistrar/openapi/model/Secret.java 2024-04-09 18:30:01.052485315 +0200
+++ src/main/java/uniregistrar/openapi/model/Secret.java.patched 2024-04-09 18:31:33.228834742 +0200
+++ src/main/java/uniregistrar/openapi/model/Secret.java.changed 2024-04-09 18:31:33.228834742 +0200
@@ -46,7 +46,7 @@
Secret.JSON_PROPERTY_VERIFICATION_METHOD
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/main/java/uniregistrar/openapi/model/SecretVerificationMethodInner.java 2024-04-10 00:20:30.863507540 +0200
+++ src/main/java/uniregistrar/openapi/model/SecretVerificationMethodInner.java.patched 2024-04-10 00:19:30.711289435 +0200
--- src/main/java/uniregistrar/openapi/model/SecretVerificationMethodInner.java 2024-04-10 16:47:05.893685764 +0200
+++ src/main/java/uniregistrar/openapi/model/SecretVerificationMethodInner.java.changed 2024-04-10 16:45:19.125458058 +0200
@@ -15,16 +15,14 @@

import java.net.URLEncoder;
Expand All @@ -19,7 +19,7 @@
+
import java.util.HashMap;
import java.util.Map;
import uniregistrar.openapi.model.SecretVerificationMethodVerificationMethodTemplateInner;
import uniregistrar.openapi.model.VerificationMethodPrivateData;
@@ -39,9 +37,6 @@
import java.io.IOException;
import java.util.logging.Level;
Expand All @@ -30,68 +30,135 @@

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
@@ -99,17 +94,17 @@
@@ -95,30 +90,30 @@
boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS);
int match = 0;
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
- // deserialize List<@Valid VerificationMethodTemplate>
+ // deserialize List
try {
boolean attemptParsing = true;
// ensure that we respect type coercion as set on the client ObjectMapper
- if (List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Integer.class) || List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Long.class) || List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Float.class) || List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Double.class) || List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Boolean.class) || List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(String.class)) {
- if (List<@Valid VerificationMethodTemplate>.class.equals(Integer.class) || List<@Valid VerificationMethodTemplate>.class.equals(Long.class) || List<@Valid VerificationMethodTemplate>.class.equals(Float.class) || List<@Valid VerificationMethodTemplate>.class.equals(Double.class) || List<@Valid VerificationMethodTemplate>.class.equals(Boolean.class) || List<@Valid VerificationMethodTemplate>.class.equals(String.class)) {
+ if (List.class.equals(Integer.class) || List.class.equals(Long.class) || List.class.equals(Float.class) || List.class.equals(Double.class) || List.class.equals(Boolean.class) || List.class.equals(String.class)) {
attemptParsing = typeCoercion;
if (!attemptParsing) {
- attemptParsing |= ((List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Integer.class) || List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
- attemptParsing |= ((List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Float.class) || List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
- attemptParsing |= (List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
- attemptParsing |= (List<SecretVerificationMethodVerificationMethodTemplateInner>.class.equals(String.class) && token == JsonToken.VALUE_STRING);
- attemptParsing |= ((List<@Valid VerificationMethodTemplate>.class.equals(Integer.class) || List<@Valid VerificationMethodTemplate>.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
- attemptParsing |= ((List<@Valid VerificationMethodTemplate>.class.equals(Float.class) || List<@Valid VerificationMethodTemplate>.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
- attemptParsing |= (List<@Valid VerificationMethodTemplate>.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
- attemptParsing |= (List<@Valid VerificationMethodTemplate>.class.equals(String.class) && token == JsonToken.VALUE_STRING);
+ attemptParsing |= ((List.class.equals(Integer.class) || List.class.equals(Long.class)) && token == JsonToken.VALUE_NUMBER_INT);
+ attemptParsing |= ((List.class.equals(Float.class) || List.class.equals(Double.class)) && token == JsonToken.VALUE_NUMBER_FLOAT);
+ attemptParsing |= (List.class.equals(Boolean.class) && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
+ attemptParsing |= (List.class.equals(String.class) && token == JsonToken.VALUE_STRING);
}
}
if (attemptParsing) {
- deserialized = tree.traverse(jp.getCodec()).readValueAs(List<SecretVerificationMethodVerificationMethodTemplateInner>.class);
- deserialized = tree.traverse(jp.getCodec()).readValueAs(List<@Valid VerificationMethodTemplate>.class);
+ deserialized = tree.traverse(jp.getCodec()).readValueAs(List.class);
// TODO: there is no validation against JSON schema constraints
// (min, max, enum, pattern...), this does not perform a strict JSON
// validation, which means the 'match' count may be higher than it should be.
match++;
- log.log(Level.FINER, "Input data matches schema 'List<@Valid VerificationMethodTemplate>'");
+ log.log(Level.FINER, "Input data matches schema 'List'");
}
} catch (Exception e) {
// deserialization failed, continue
- log.log(Level.FINER, "Input data does not match schema 'List<@Valid VerificationMethodTemplate>'", e);
+ log.log(Level.FINER, "Input data does not match schema 'List'", e);
}

// deserialize VerificationMethodPrivateData
@@ -197,7 +192,7 @@
super("oneOf", Boolean.FALSE);
}

- public SecretVerificationMethodInner(List<@Valid VerificationMethodTemplate> o) {
+ public SecretVerificationMethodInner(List<Map<String, Object>> o) {
super("oneOf", Boolean.FALSE);
setActualInstance(o);
}
@@ -213,7 +208,7 @@
}

static {
- schemas.put("List<SecretVerificationMethodVerificationMethodTemplateInner>", List<SecretVerificationMethodVerificationMethodTemplateInner>.class);
+ schemas.put("List<SecretVerificationMethodVerificationMethodTemplateInner>", List.class);
- schemas.put("List<@Valid VerificationMethodTemplate>", List<@Valid VerificationMethodTemplate>.class);
+ schemas.put("List", List.class);
schemas.put("VerificationMethodPrivateData", VerificationMethodPrivateData.class);
schemas.put("VerificationMethodPublicData", VerificationMethodPublicData.class);
JSON.registerDescendants(SecretVerificationMethodInner.class, Collections.unmodifiableMap(schemas));
@@ -234,7 +229,7 @@
@@ -227,14 +222,14 @@
/**
* Set the instance that matches the oneOf child schema, check
* the instance parameter is valid against the oneOf child schemas:
- * List<@Valid VerificationMethodTemplate>, VerificationMethodPrivateData, VerificationMethodPublicData
+ * List, VerificationMethodPrivateData, VerificationMethodPublicData
*
* It could be an instance of the 'oneOf' schemas.
* The oneOf child schemas may themselves be a composed schema (allOf, anyOf, oneOf).
*/
@Override
public void setActualInstance(Object instance) {
- if (JSON.isInstanceOf(List<SecretVerificationMethodVerificationMethodTemplateInner>.class, instance, new HashSet<Class<?>>())) {
- if (JSON.isInstanceOf(List<@Valid VerificationMethodTemplate>.class, instance, new HashSet<Class<?>>())) {
+ if (JSON.isInstanceOf(List.class, instance, new HashSet<Class<?>>())) {
super.setActualInstance(instance);
return;
}
@@ -270,7 +265,7 @@
* @return The actual instance of `List<SecretVerificationMethodVerificationMethodTemplateInner>`
* @throws ClassCastException if the instance is not `List<SecretVerificationMethodVerificationMethodTemplateInner>`
@@ -249,14 +244,14 @@
return;
}

- throw new RuntimeException("Invalid instance type. Must be List<@Valid VerificationMethodTemplate>, VerificationMethodPrivateData, VerificationMethodPublicData");
+ throw new RuntimeException("Invalid instance type. Must be List, VerificationMethodPrivateData, VerificationMethodPublicData");
}

/**
* Get the actual instance, which can be the following:
- * List<@Valid VerificationMethodTemplate>, VerificationMethodPrivateData, VerificationMethodPublicData
+ * List, VerificationMethodPrivateData, VerificationMethodPublicData
*
- * @return The actual instance (List<@Valid VerificationMethodTemplate>, VerificationMethodPrivateData, VerificationMethodPublicData)
+ * @return The actual instance (List, VerificationMethodPrivateData, VerificationMethodPublicData)
*/
- public List<SecretVerificationMethodVerificationMethodTemplateInner> getList<SecretVerificationMethodVerificationMethodTemplateInner>() throws ClassCastException {
+ public List<SecretVerificationMethodVerificationMethodTemplateInner> getList() throws ClassCastException {
return (List<SecretVerificationMethodVerificationMethodTemplateInner>)super.getActualInstance();
@Override
public Object getActualInstance() {
@@ -264,14 +259,14 @@
}

@@ -342,11 +337,11 @@
/**
- * Get the actual instance of `List<@Valid VerificationMethodTemplate>`. If the actual instance is not `List<@Valid VerificationMethodTemplate>`,
+ * Get the actual instance of `List`. If the actual instance is not `List`,
* the ClassCastException will be thrown.
*
- * @return The actual instance of `List<@Valid VerificationMethodTemplate>`
- * @throws ClassCastException if the instance is not `List<@Valid VerificationMethodTemplate>`
+ * @return The actual instance of `List`
+ * @throws ClassCastException if the instance is not `List`
*/
- public List<@Valid VerificationMethodTemplate> getList<@Valid VerificationMethodTemplate>() throws ClassCastException {
- return (List<@Valid VerificationMethodTemplate>)super.getActualInstance();
+ public List<Map<String, Object>> getList() throws ClassCastException {
+ return (List<Map<String, Object>>)super.getActualInstance();
}

/**
@@ -342,13 +337,12 @@
}
return joiner.toString();
}
- if (getActualInstance() instanceof List<SecretVerificationMethodVerificationMethodTemplateInner>) {
- if (getActualInstance() instanceof List<@Valid VerificationMethodTemplate>) {
+ if (getActualInstance() instanceof List) {
if (getActualInstance() != null) {
for (int i = 0; i < ((List<SecretVerificationMethodVerificationMethodTemplateInner>)getActualInstance()).size(); i++) {
if (((List<SecretVerificationMethodVerificationMethodTemplateInner>)getActualInstance()).get(i) != null) {
- joiner.add(((SecretVerificationMethodVerificationMethodTemplateInner)getActualInstance()).get(i).toUrlQueryString(String.format("%sone_of_2%s%s", prefix, suffix,
+ joiner.add(((List<SecretVerificationMethodVerificationMethodTemplateInner>)getActualInstance()).get(i).toUrlQueryString(String.format("%sone_of_2%s%s", prefix, suffix,
"".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix))));
}
- for (int i = 0; i < ((List<@Valid VerificationMethodTemplate>)getActualInstance()).size(); i++) {
- if (((List<@Valid VerificationMethodTemplate>)getActualInstance()).get(i) != null) {
- joiner.add(((VerificationMethodTemplate)getActualInstance()).get(i).toUrlQueryString(String.format("%sone_of_2%s%s", prefix, suffix,
- "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix))));
- }
+ for (int i = 0; i < ((List<Map<String, Object>>)getActualInstance()).size(); i++) {
+ joiner.add(String.format("%sone_of_2%s%s=%s", prefix, suffix,
+ "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix),
+ URLEncoder.encode(String.valueOf(((List<Map<String, Object>>)getActualInstance()).get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
}
}
return joiner.toString();

0 comments on commit 693436d

Please sign in to comment.