From 38f748cee7bca2cbc83cb11a1b02b91cb1aa2d6d Mon Sep 17 00:00:00 2001 From: Aaron Morton Date: Thu, 26 Sep 2024 17:05:01 +1200 Subject: [PATCH 1/2] The mapping for old errors already did this, this is relied on by the Operation Attempt work --- .../sgv2/jsonapi/config/constants/ErrorObjectV2Constants.java | 1 + .../sgv2/jsonapi/exception/APIExceptionCommandErrorBuilder.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/java/io/stargate/sgv2/jsonapi/config/constants/ErrorObjectV2Constants.java b/src/main/java/io/stargate/sgv2/jsonapi/config/constants/ErrorObjectV2Constants.java index acf0b5a7b..c74ed5981 100644 --- a/src/main/java/io/stargate/sgv2/jsonapi/config/constants/ErrorObjectV2Constants.java +++ b/src/main/java/io/stargate/sgv2/jsonapi/config/constants/ErrorObjectV2Constants.java @@ -11,6 +11,7 @@ interface Fields { String MESSAGE = "message"; // Only included in debug mode, backwards compatible with old style String EXCEPTION_CLASS = "exceptionClass"; + String ID = "id"; } /** Tags used when tracking metrics */ diff --git a/src/main/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilder.java b/src/main/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilder.java index c75acbfaf..91d2a2005 100644 --- a/src/main/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilder.java +++ b/src/main/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilder.java @@ -61,6 +61,7 @@ public CommandResult.Error apply(APIException apiException) { errorFields.put(ErrorObjectV2Constants.Fields.FAMILY, apiException.family.name()); errorFields.put(ErrorObjectV2Constants.Fields.SCOPE, apiException.scope); errorFields.put(ErrorObjectV2Constants.Fields.TITLE, apiException.title); + errorFields.put(ErrorObjectV2Constants.Fields.ID, apiException.errorId); } if (debugEnabled) { errorFields.put( From adc748c2a191adc4cc40d51a409e2b66daac14ea Mon Sep 17 00:00:00 2001 From: Aaron Morton Date: Thu, 26 Sep 2024 18:13:51 +1200 Subject: [PATCH 2/2] update tests for error ID --- .../exception/APIExceptionCommandErrorBuilderTest.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/test/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilderTest.java b/src/test/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilderTest.java index 0785a298f..afaef6030 100644 --- a/src/test/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilderTest.java +++ b/src/test/java/io/stargate/sgv2/jsonapi/exception/APIExceptionCommandErrorBuilderTest.java @@ -20,7 +20,7 @@ String getErrorConfigResource() { public void productionModeCommandResult() { var exception = TestRequestException.Code.NO_VARIABLES_TEMPLATE.get(); var result = new APIExceptionCommandErrorBuilder(false, true).apply(exception); - assertCommandError(exception, result, 4, true); + assertCommandError(exception, result, 5, true); } @Test @@ -34,7 +34,7 @@ public void preErrorV2ModeCommandResult() { public void debugModeCommandResult() { var exception = TestRequestException.Code.NO_VARIABLES_TEMPLATE.get(); var result = new APIExceptionCommandErrorBuilder(true, true).apply(exception); - assertCommandError(exception, result, 5, true); + assertCommandError(exception, result, 6, true); assertThat(result) .isNotNull() @@ -88,7 +88,8 @@ private void assertErrorFields( .as("Error fields - fields new in v2 schema") .containsEntry(ErrorObjectV2Constants.Fields.FAMILY, exception.family.name()) .containsEntry(ErrorObjectV2Constants.Fields.SCOPE, exception.scope) - .containsEntry(ErrorObjectV2Constants.Fields.TITLE, exception.title); + .containsEntry(ErrorObjectV2Constants.Fields.TITLE, exception.title) + .containsEntry(ErrorObjectV2Constants.Fields.ID, exception.errorId); } } }