Return file lists via /arbitrary/metadata/* endpoints, but exclude it from /arbitrary/resources/* endpoints.

This commit is contained in:
CalDescent
2023-01-22 16:29:23 +00:00
parent 328ba48224
commit 1d568fa462
3 changed files with 39 additions and 6 deletions

View File

@@ -719,7 +719,7 @@ public class ArbitraryResource {
try {
ArbitraryDataTransactionMetadata transactionMetadata = ArbitraryMetadataManager.getInstance().fetchMetadata(resource, false);
if (transactionMetadata != null) {
ArbitraryResourceMetadata resourceMetadata = ArbitraryResourceMetadata.fromTransactionMetadata(transactionMetadata);
ArbitraryResourceMetadata resourceMetadata = ArbitraryResourceMetadata.fromTransactionMetadata(transactionMetadata, true);
if (resourceMetadata != null) {
return resourceMetadata;
}
@@ -1288,7 +1288,7 @@ public class ArbitraryResource {
ArbitraryDataResource resource = new ArbitraryDataResource(resourceInfo.name, ResourceIdType.NAME,
resourceInfo.service, resourceInfo.identifier);
ArbitraryDataTransactionMetadata transactionMetadata = resource.getLatestTransactionMetadata();
ArbitraryResourceMetadata resourceMetadata = ArbitraryResourceMetadata.fromTransactionMetadata(transactionMetadata);
ArbitraryResourceMetadata resourceMetadata = ArbitraryResourceMetadata.fromTransactionMetadata(transactionMetadata, false);
if (resourceMetadata != null) {
resourceInfo.metadata = resourceMetadata;
}

View File

@@ -15,22 +15,24 @@ public class ArbitraryResourceMetadata {
private List<String> tags;
private Category category;
private String categoryName;
private List<String> files;
public ArbitraryResourceMetadata() {
}
public ArbitraryResourceMetadata(String title, String description, List<String> tags, Category category) {
public ArbitraryResourceMetadata(String title, String description, List<String> tags, Category category, List<String> files) {
this.title = title;
this.description = description;
this.tags = tags;
this.category = category;
this.files = files;
if (category != null) {
this.categoryName = category.getName();
}
}
public static ArbitraryResourceMetadata fromTransactionMetadata(ArbitraryDataTransactionMetadata transactionMetadata) {
public static ArbitraryResourceMetadata fromTransactionMetadata(ArbitraryDataTransactionMetadata transactionMetadata, boolean includeFileList) {
if (transactionMetadata == null) {
return null;
}
@@ -39,10 +41,20 @@ public class ArbitraryResourceMetadata {
List<String> tags = transactionMetadata.getTags();
Category category = transactionMetadata.getCategory();
if (title == null && description == null && tags == null && category == null) {
// We don't always want to include the file list as it can be too verbose
List<String> files = null;
if (includeFileList) {
files = transactionMetadata.getFiles();
}
if (title == null && description == null && tags == null && category == null && files == null) {
return null;
}
return new ArbitraryResourceMetadata(title, description, tags, category);
return new ArbitraryResourceMetadata(title, description, tags, category, files);
}
public List<String> getFiles() {
return this.files;
}
}