From b7586586fb2aa699562449bbe7bb6a555934b1f9 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Tue, 29 Jul 2025 18:25:32 +0200 Subject: [PATCH 1/3] :sparkles: add support for page count & mime type --- .../java/com/mindee/parsing/v2/Inference.java | 8 ++---- ...enceResultFile.java => InferenceFile.java} | 28 +++++++++++++++++-- ...ceResultModel.java => InferenceModel.java} | 2 +- src/main/java/com/mindee/parsing/v2/Job.java | 2 +- ...obResponseWebhook.java => JobWebhook.java} | 4 +-- .../com/mindee/parsing/v2/InferenceTest.java | 4 +-- src/test/resources | 2 +- 7 files changed, 36 insertions(+), 14 deletions(-) rename src/main/java/com/mindee/parsing/v2/{InferenceResultFile.java => InferenceFile.java} (52%) rename src/main/java/com/mindee/parsing/v2/{InferenceResultModel.java => InferenceModel.java} (93%) rename src/main/java/com/mindee/parsing/v2/{JobResponseWebhook.java => JobWebhook.java} (93%) diff --git a/src/main/java/com/mindee/parsing/v2/Inference.java b/src/main/java/com/mindee/parsing/v2/Inference.java index 3b50dd6fe..db37e638b 100644 --- a/src/main/java/com/mindee/parsing/v2/Inference.java +++ b/src/main/java/com/mindee/parsing/v2/Inference.java @@ -27,13 +27,13 @@ public class Inference { * Model info. */ @JsonProperty("model") - private InferenceResultModel model; + private InferenceModel model; /** * File info. */ @JsonProperty("file") - private InferenceResultFile file; + private InferenceFile file; /** * Model result values. @@ -51,9 +51,7 @@ public String toString() { .add("=====") .add(":ID: " + (model != null ? model.getId() : "")) .add("") - .add("File") - .add("====") - .add(file != null ? file.toString() : "") + .add(file.toString()) .add("") .add(result != null ? result.toString() : ""); return joiner.toString().trim() + "\n"; diff --git a/src/main/java/com/mindee/parsing/v2/InferenceResultFile.java b/src/main/java/com/mindee/parsing/v2/InferenceFile.java similarity index 52% rename from src/main/java/com/mindee/parsing/v2/InferenceResultFile.java rename to src/main/java/com/mindee/parsing/v2/InferenceFile.java index 5296ae5e9..b6f9eb813 100644 --- a/src/main/java/com/mindee/parsing/v2/InferenceResultFile.java +++ b/src/main/java/com/mindee/parsing/v2/InferenceFile.java @@ -7,6 +7,8 @@ import lombok.Getter; import lombok.NoArgsConstructor; +import java.util.StringJoiner; + /** * File info for V2 API. */ @@ -15,7 +17,7 @@ @JsonIgnoreProperties(ignoreUnknown = true) @AllArgsConstructor @NoArgsConstructor -public class InferenceResultFile { +public class InferenceFile { /** * File name. */ @@ -28,7 +30,29 @@ public class InferenceResultFile { @JsonProperty("alias") private String alias; + /** + * Page Count. + */ + @JsonProperty("page_count") + private int pageCount; + + /** + * Mime type, as read by the server. + */ + @JsonProperty("mime_type") + private String mimeType; + + public String toString() { - return ":Name: " + name + "\n:Alias:" + (alias != null ? " " + alias : ""); + + StringJoiner joiner = new StringJoiner("\n"); + joiner + .add("File") + .add("====") + .add(":Name: " + name) + .add(":Alias:" + (alias != null ? " " + alias : "")) + .add(":Page Count: " + pageCount) + .add(":MIME Type: " + mimeType); + return joiner.toString(); } } diff --git a/src/main/java/com/mindee/parsing/v2/InferenceResultModel.java b/src/main/java/com/mindee/parsing/v2/InferenceModel.java similarity index 93% rename from src/main/java/com/mindee/parsing/v2/InferenceResultModel.java rename to src/main/java/com/mindee/parsing/v2/InferenceModel.java index 70cf0e80d..02c24f74f 100644 --- a/src/main/java/com/mindee/parsing/v2/InferenceResultModel.java +++ b/src/main/java/com/mindee/parsing/v2/InferenceModel.java @@ -15,7 +15,7 @@ @JsonIgnoreProperties(ignoreUnknown = true) @AllArgsConstructor @NoArgsConstructor -public class InferenceResultModel { +public class InferenceModel { /** * The ID of the model. diff --git a/src/main/java/com/mindee/parsing/v2/Job.java b/src/main/java/com/mindee/parsing/v2/Job.java index d08f05e23..db8ee360e 100644 --- a/src/main/java/com/mindee/parsing/v2/Job.java +++ b/src/main/java/com/mindee/parsing/v2/Job.java @@ -80,5 +80,5 @@ public final class Job { * Polling URL. */ @JsonProperty("webhooks") - private List webhooks; + private List webhooks; } diff --git a/src/main/java/com/mindee/parsing/v2/JobResponseWebhook.java b/src/main/java/com/mindee/parsing/v2/JobWebhook.java similarity index 93% rename from src/main/java/com/mindee/parsing/v2/JobResponseWebhook.java rename to src/main/java/com/mindee/parsing/v2/JobWebhook.java index 09ca9f123..1a892eb69 100644 --- a/src/main/java/com/mindee/parsing/v2/JobResponseWebhook.java +++ b/src/main/java/com/mindee/parsing/v2/JobWebhook.java @@ -11,14 +11,14 @@ import lombok.NoArgsConstructor; /** - * JobResponseWebhook info. + * JobWebhook info. */ @Getter @EqualsAndHashCode @JsonIgnoreProperties(ignoreUnknown = true) @AllArgsConstructor @NoArgsConstructor -public final class JobResponseWebhook { +public final class JobWebhook { /** * ID of the webhook. diff --git a/src/test/java/com/mindee/parsing/v2/InferenceTest.java b/src/test/java/com/mindee/parsing/v2/InferenceTest.java index 64b121bad..ad0853606 100644 --- a/src/test/java/com/mindee/parsing/v2/InferenceTest.java +++ b/src/test/java/com/mindee/parsing/v2/InferenceTest.java @@ -95,11 +95,11 @@ void asyncPredict_whenComplete_mustExposeAllProperties() throws IOException { assertNotNull(inf, "Inference must not be null"); assertEquals("12345678-1234-1234-1234-123456789abc", inf.getId(), "Inference ID mismatch"); - InferenceResultModel model = inf.getModel(); + InferenceModel model = inf.getModel(); assertNotNull(model, "Model must not be null"); assertEquals("12345678-1234-1234-1234-123456789abc", model.getId(), "Model ID mismatch"); - InferenceResultFile file = inf.getFile(); + InferenceFile file = inf.getFile(); assertNotNull(file, "File must not be null"); assertEquals("complete.jpg", file.getName(), "File name mismatch"); assertNull(file.getAlias(), "File alias must be null for this payload"); diff --git a/src/test/resources b/src/test/resources index 02ace39f3..38b9d5d86 160000 --- a/src/test/resources +++ b/src/test/resources @@ -1 +1 @@ -Subproject commit 02ace39f3b8cdd99dcac4f060d5b24b67ff5f2ab +Subproject commit 38b9d5d86bf5791c42b74d2c83725cd1666781de From 56901175c17cfefce78057a6cc6c348718fbad44 Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Tue, 29 Jul 2025 18:28:03 +0200 Subject: [PATCH 2/3] fix imports --- src/main/java/com/mindee/parsing/v2/InferenceFile.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/mindee/parsing/v2/InferenceFile.java b/src/main/java/com/mindee/parsing/v2/InferenceFile.java index b6f9eb813..67e0b3772 100644 --- a/src/main/java/com/mindee/parsing/v2/InferenceFile.java +++ b/src/main/java/com/mindee/parsing/v2/InferenceFile.java @@ -2,13 +2,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.StringJoiner; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; -import java.util.StringJoiner; - /** * File info for V2 API. */ From c242a6fadba49dfe082161225a0d87ba503ef6fa Mon Sep 17 00:00:00 2001 From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com> Date: Tue, 29 Jul 2025 18:54:25 +0200 Subject: [PATCH 3/3] add test --- src/test/java/com/mindee/parsing/v2/InferenceTest.java | 2 ++ src/test/resources | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/mindee/parsing/v2/InferenceTest.java b/src/test/java/com/mindee/parsing/v2/InferenceTest.java index ad0853606..865427adc 100644 --- a/src/test/java/com/mindee/parsing/v2/InferenceTest.java +++ b/src/test/java/com/mindee/parsing/v2/InferenceTest.java @@ -102,6 +102,8 @@ void asyncPredict_whenComplete_mustExposeAllProperties() throws IOException { InferenceFile file = inf.getFile(); assertNotNull(file, "File must not be null"); assertEquals("complete.jpg", file.getName(), "File name mismatch"); + assertEquals(1, file.getPageCount(), "Page count mismatch"); + assertEquals("image/jpeg", file.getMimeType(), "MIME type mismatch"); assertNull(file.getAlias(), "File alias must be null for this payload"); InferenceFields fields = inf.getResult().getFields(); diff --git a/src/test/resources b/src/test/resources index 38b9d5d86..632af76d6 160000 --- a/src/test/resources +++ b/src/test/resources @@ -1 +1 @@ -Subproject commit 38b9d5d86bf5791c42b74d2c83725cd1666781de +Subproject commit 632af76d6eefe551cdeb2b7fa2f325cecec1b66f