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