From 07c42aeae0fb063f3d88a53e1d1620e6cf786935 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Mon, 20 Jul 2026 17:58:49 +0200 Subject: [PATCH 1/3] :sparkles: add webhook error response --- .../v2/parsing/FailedInferenceResponse.java | 55 +++++++++++++++++++ .../parsing/FailedInferenceResponseTest.java | 33 +++++++++++ src/test/resources | 2 +- 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java create mode 100644 src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java diff --git a/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java b/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java new file mode 100644 index 000000000..ec2d3c259 --- /dev/null +++ b/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java @@ -0,0 +1,55 @@ +package com.mindee.v2.parsing; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.mindee.v1.parsing.common.LocalDateTimeDeserializer; +import com.mindee.v2.parsing.error.ErrorResponse; +import java.time.LocalDateTime; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Represents an asynchronous polling response. + */ +@Data +@EqualsAndHashCode(callSuper = true) +@JsonIgnoreProperties(ignoreUnknown = true) +public class FailedInferenceResponse extends CommonResponse { + /** + * UUID of the failed inference. + */ + @JsonProperty("inference_id") + String inferenceId; + + /** + * UUID of the model used. + */ + @JsonProperty("model_id") + String modelId; + + /** + * Name of the input file. + */ + @JsonProperty("file_name") + String fileName; + + /** + * Alias sent for the file, if any + */ + @JsonProperty("file_alias") + String fileAlias; + + /** + * Problem details for the failure, if available. + */ + @JsonProperty("error") + ErrorResponse error; + + /** + * Date and time when the inference was started. + */ + @JsonProperty("created_at") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + LocalDateTime createdAt; +} diff --git a/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java new file mode 100644 index 000000000..d2db09370 --- /dev/null +++ b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java @@ -0,0 +1,33 @@ +package com.mindee.v2.parsing; + +import static com.mindee.TestingUtilities.getV2ResourcePath; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.io.IOException; +import java.time.LocalDateTime; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +@DisplayName("MindeeV2 - Failed Inference Tests") +public class FailedInferenceResponseTest { + @Test + @DisplayName("properties must be valid") + void whenFailed_mustLoad() throws IOException { + var localResponse = new LocalResponse( + getV2ResourcePath("errors/webhook_error_500_failed.json") + ); + var response = localResponse.deserializeResponse(FailedInferenceResponse.class); + assertNotNull(response); + assertEquals("12345678-1234-1234-1234-123456789ABC", response.getInferenceId()); + assertEquals("default_sample.jpg", response.getFileName()); + assertEquals("dummy-alias.jpg", response.getFileAlias()); + assertEquals("dummy-alias.jpg", response.getFileAlias()); + assertInstanceOf(LocalDateTime.class, response.getCreatedAt()); + assertNotNull(response.getError()); + assertNotNull(response.getError()); + assertEquals(500, response.getError().getStatus()); + assertEquals("500-012", response.getError().getCode()); + } +} diff --git a/src/test/resources b/src/test/resources index 2d7fcf8f5..e41ab97c2 160000 --- a/src/test/resources +++ b/src/test/resources @@ -1 +1 @@ -Subproject commit 2d7fcf8f591f6d7f40e39862965325e6a8a21874 +Subproject commit e41ab97c2833f15ea5c4edf221c2d197d212f632 From 7c3339cab38a93d34b2d6db2e5d961f9bfcc64c7 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Mon, 20 Jul 2026 17:59:30 +0200 Subject: [PATCH 2/3] :arrow_up: bump dependencies --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c35d7bc3b..703b5e825 100644 --- a/pom.xml +++ b/pom.xml @@ -390,7 +390,7 @@ UTF-8 - 2.21.4 + 2.21.5 4.12.0 4.7.7 3.6.1 From 94e25b100f49bcb432314418a8ea0f3b068d1475 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Tue, 21 Jul 2026 16:20:51 +0200 Subject: [PATCH 3/3] fix folder ordering --- .../v2/parsing/{ => inference}/FailedInferenceResponse.java | 3 ++- .../com/mindee/v2/parsing/FailedInferenceResponseTest.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) rename src/main/java/com/mindee/v2/parsing/{ => inference}/FailedInferenceResponse.java (93%) diff --git a/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java b/src/main/java/com/mindee/v2/parsing/inference/FailedInferenceResponse.java similarity index 93% rename from src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java rename to src/main/java/com/mindee/v2/parsing/inference/FailedInferenceResponse.java index ec2d3c259..5994a84bf 100644 --- a/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java +++ b/src/main/java/com/mindee/v2/parsing/inference/FailedInferenceResponse.java @@ -1,9 +1,10 @@ -package com.mindee.v2.parsing; +package com.mindee.v2.parsing.inference; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.mindee.v1.parsing.common.LocalDateTimeDeserializer; +import com.mindee.v2.parsing.CommonResponse; import com.mindee.v2.parsing.error.ErrorResponse; import java.time.LocalDateTime; import lombok.Data; diff --git a/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java index d2db09370..47f85abe0 100644 --- a/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java +++ b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.junit.jupiter.api.Assertions.assertNotNull; +import com.mindee.v2.parsing.inference.FailedInferenceResponse; import java.io.IOException; import java.time.LocalDateTime; import org.junit.jupiter.api.DisplayName;