From 91d1f92210adbdecba9bcea73cae9fa6dfc78e62 Mon Sep 17 00:00:00 2001 From: Kevin Birk Date: Tue, 9 Jul 2024 14:17:38 -0400 Subject: [PATCH] Fix asset extraction exporting (#4083) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../hmiserver/models/TerariumAsset.java | 2 +- .../dataservice/document/DocumentAsset.java | 26 +++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/TerariumAsset.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/TerariumAsset.java index 964e037322..87461cfa49 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/TerariumAsset.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/TerariumAsset.java @@ -36,7 +36,7 @@ public abstract class TerariumAsset extends TerariumEntity { @JsonAlias("file_names") @Type(JsonType.class) @Column(columnDefinition = "json") - private List fileNames = new ArrayList<>(); + protected List fileNames = new ArrayList<>(); @TSOptional @Schema(accessMode = Schema.AccessMode.READ_ONLY) diff --git a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/dataservice/document/DocumentAsset.java b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/dataservice/document/DocumentAsset.java index 9b5cfd9505..d6f6cbd65e 100644 --- a/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/dataservice/document/DocumentAsset.java +++ b/packages/server/src/main/java/software/uncharted/terarium/hmiserver/models/dataservice/document/DocumentAsset.java @@ -70,6 +70,27 @@ public class DocumentAsset extends TerariumAsset { @Column(columnDefinition = "json") private List assets; + @Override + public List getFileNames() { + final List res = new ArrayList<>(); + if (this.fileNames != null) { + for (final String fileName : fileNames) { + if (!res.contains(fileName)) { + res.add(fileName); + } + } + } + // ensure these are included in filenames + if (this.assets != null) { + for (final DocumentExtraction asset : assets) { + if (!res.contains(asset.getFileName())) { + res.add(asset.getFileName()); + } + } + } + return res; + } + /** * Get the DOI of a document * @@ -115,11 +136,6 @@ public DocumentAsset clone() { clone.assets = new ArrayList<>(); for (final DocumentExtraction asset : this.assets) { clone.assets.add(asset.clone()); - - // ensure the asset filename is added - if (!clone.getFileNames().contains(asset.getFileName())) { - clone.getFileNames().add(asset.getFileName()); - } } }