From 28da4bd56ec0b899028ae48db2555979a3732912 Mon Sep 17 00:00:00 2001 From: Lukas Gemela Date: Tue, 11 Jun 2024 11:02:10 +0200 Subject: [PATCH 1/2] make-validation-errors-more-configurable --- .../ResourceBundleMessageInterpolator.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java b/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java index 99df8c1..2fd9864 100644 --- a/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java +++ b/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java @@ -76,6 +76,20 @@ protected ErrorClassification buildErrorClassification(String messageTemplate, M return new ValidationErrorType(fieldOrArgumentPath, directive); } + /** + * Override this method to build your own error extension + * + * @param messageTemplate the message template + * @param messageParams the parameters + * @param validationEnvironment the rule environment + * + * @return an Map of extensions + */ + @SuppressWarnings("unused") + protected Map buildErrorExtension(String messageTemplate, Map messageParams, ValidationEnvironment validationEnvironment) { + return Map.of(); + } + /** * You can override this to provide your own resource bundles for a given locale * @@ -92,11 +106,14 @@ protected ResourceBundle getResourceBundle(Locale locale) { public GraphQLError interpolate(String messageTemplate, Map messageParams, ValidationEnvironment validationEnvironment) { ErrorClassification errorClassification = buildErrorClassification(messageTemplate, messageParams, validationEnvironment); + Map errorExtensions = buildErrorExtension(messageTemplate, messageParams, validationEnvironment); + String message = interpolateMessageImpl(messageTemplate, messageParams, validationEnvironment); GraphqlErrorBuilder errorBuilder = GraphqlErrorBuilder.newError() .message(message) .errorType(errorClassification) + .extensions(errorExtensions) .path(validationEnvironment.getExecutionPath()); if (validationEnvironment.getLocation() != null) { errorBuilder.location(validationEnvironment.getLocation()); From 1f268613245065ba61593d23157b290e951a3b33 Mon Sep 17 00:00:00 2001 From: Lukas Gemela Date: Tue, 11 Jun 2024 11:05:46 +0200 Subject: [PATCH 2/2] make-validation-errors-more-configurable --- .../interpolation/ResourceBundleMessageInterpolator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java b/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java index 2fd9864..f142470 100644 --- a/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java +++ b/src/main/java/graphql/validation/interpolation/ResourceBundleMessageInterpolator.java @@ -77,7 +77,7 @@ protected ErrorClassification buildErrorClassification(String messageTemplate, M } /** - * Override this method to build your own error extension + * Override this method to build your own error extensions * * @param messageTemplate the message template * @param messageParams the parameters @@ -86,7 +86,7 @@ protected ErrorClassification buildErrorClassification(String messageTemplate, M * @return an Map of extensions */ @SuppressWarnings("unused") - protected Map buildErrorExtension(String messageTemplate, Map messageParams, ValidationEnvironment validationEnvironment) { + protected Map buildErrorExtensions(String messageTemplate, Map messageParams, ValidationEnvironment validationEnvironment) { return Map.of(); } @@ -106,7 +106,7 @@ protected ResourceBundle getResourceBundle(Locale locale) { public GraphQLError interpolate(String messageTemplate, Map messageParams, ValidationEnvironment validationEnvironment) { ErrorClassification errorClassification = buildErrorClassification(messageTemplate, messageParams, validationEnvironment); - Map errorExtensions = buildErrorExtension(messageTemplate, messageParams, validationEnvironment); + Map errorExtensions = buildErrorExtensions(messageTemplate, messageParams, validationEnvironment); String message = interpolateMessageImpl(messageTemplate, messageParams, validationEnvironment);