From 861b77d9fd6bec734485ead41e6d12fcd74d0e81 Mon Sep 17 00:00:00 2001 From: Maximilian Brodhun <brodhun@sub.uni-goettingen.de> Date: Sat, 30 Nov 2019 18:32:39 +0100 Subject: [PATCH] No sandboxed projects --- oaipmh-core/pom.xml | 7 +++ .../textgrid/middleware/SetDeliverer.java | 43 ++++++++++++++----- .../info/textgrid/middleware/OaiPmhTest.java | 2 +- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/oaipmh-core/pom.xml b/oaipmh-core/pom.xml index cf6a0b4c..c8bc3ca7 100644 --- a/oaipmh-core/pom.xml +++ b/oaipmh-core/pom.xml @@ -107,6 +107,13 @@ <artifactId>package-info-maven-plugin</artifactId> <version>1.4.5</version> </dependency> + <!-- https://mvnrepository.com/artifact/org.json/json --> +<dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20190722</version> +</dependency> + </dependencies> <build> <pluginManagement> diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java index 78c0a670..28d92c41 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java @@ -9,22 +9,29 @@ import java.util.List; import java.util.Map.Entry; import java.util.Set; +import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.action.get.GetRequest; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.common.Strings; +import org.elasticsearch.common.xcontent.ToXContent; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentFactory; + import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.script.Script; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilders; +import org.elasticsearch.search.aggregations.Aggregations; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; +import org.json.JSONObject; import info.textgrid.clients.tgauth.AuthClientException; import info.textgrid.middleware.oaipmh.ListSetsType; @@ -84,7 +91,9 @@ public class SetDeliverer { projectNameAndID = AggregationBuilders.terms("projects") .script(mergeProjectIDandProjectName) - .size(1000); + .size(1000); + + filterPublicProjects.subAggregation(projectNameAndID); } if (this.dariah){ @@ -100,10 +109,10 @@ public class SetDeliverer { searchSourceBuilder.size(0); searchSourceBuilder.aggregation(filterPublicProjects); - searchSourceBuilder.aggregation(projectNameAndID); + //searchSourceBuilder.aggregation(projectNameAndID); request.source(searchSourceBuilder); - + System.out.println(request); SearchResponse getRecordListItems = null; try { @@ -118,19 +127,33 @@ public class SetDeliverer { String projectName=""; for (Entry<String, Aggregation> entry : getRecordListItems.getAggregations().asMap().entrySet()) { - String name = entry.getKey(); + String name = entry.getKey(); - if (name.equals("projects")) { + if (name.equals("projectsPublic")) { + + Filter trytry = getRecordListItems.getAggregations().get("projectsPublic"); + Terms trytry2 = trytry.getAggregations().get("projects"); + for(Bucket bentry : trytry2.getBuckets()) { + projectName = bentry.getKey().toString(); + String [] projectInfos = projectName.split("&"); + + SetType setsForTextGrid = new SetType(); + setsForTextGrid.setSetSpec(projectInfos[0]); + setsForTextGrid.setSetName(projectInfos[1]); + setList.getSet().add(setsForTextGrid); + + } + +/* System.out.println(trytry.getAggregations().get("projects")); + Terms a = (Terms) entry.getValue(); + System.out.println("TERM: " + a.getName()); for (Bucket bentry : a.getBuckets()) { projectName = bentry.getKey().toString(); String [] projectInfos = projectName.split("&"); - SetType setForsTextGrid = new SetType(); - setForsTextGrid.setSetSpec(projectInfos[0]); - setForsTextGrid.setSetName(projectInfos[1]); - setList.getSet().add(setForsTextGrid); - } + + } */ } } diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java index 4e944854..58b4ecc9 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTest.java @@ -444,7 +444,7 @@ public class OaiPmhTest { * @throws ParseException */ @Test - @Ignore + //@Ignore public void testListSetsTG() throws ParseException { OaiPmhTest.setListTextGrid.setFormatField("format"); OaiPmhTest.setListTextGrid.setFormatToFilter(TextGridMimetypes.EDITION); -- GitLab