package org.gcube.portlets.user.geoportaldataentry.client; import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.bson.Document; import org.gcube.application.geoportal.common.model.legacy.Concessione; import org.gcube.application.geoportal.common.model.rest.QueryRequest; import org.gcube.application.geoportal.common.model.rest.QueryRequest.OrderedRequest; import org.gcube.application.geoportal.common.model.rest.QueryRequest.OrderedRequest.Direction; import org.gcube.application.geoportal.common.model.rest.QueryRequest.PagedRequest; import org.gcube.application.geoportal.common.rest.MongoConcessioni; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.portlets.user.geoportaldataentry.server.config.GNARoleRitghtsConfigReader; import org.gcube.portlets.user.geoportaldataentry.shared.RoleRights; import org.junit.Before; import org.junit.Test; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObjectBuilder; public class TestClass { private static String TOKEN = ""; private static String CONTEXT = "/gcube/devsec/devVRE"; private static String USERNAME = "francesco.mangiacrapa"; @Before public void init() { ScopeProvider.instance.set(CONTEXT); SecurityTokenProvider.instance.set(TOKEN); } //@Test public void getListConcessioniTest() throws Exception { MongoConcessioni clientMongo = mongoConcessioni().build(); Iterator concessioni = clientMongo.getList(); List listOfConcessioni = new ArrayList(); if (concessioni != null) { while (concessioni.hasNext()) { Concessione concessione = (Concessione) concessioni.next(); listOfConcessioni.add(concessione); } } int i = 0; for (Concessione concessione : listOfConcessioni) { System.out.println(++i + " " + concessione); } } @Test public void queryConcessioniTest() throws Exception { try { MongoConcessioni clientMongo = mongoConcessioni().build(); int offsetIndex = 0; int limitIndex = 25; Direction sDirection = Direction.ASCENDING; List orderByFields = Arrays.asList("nome"); Map searchFields = new HashMap(); searchFields.put("nome", "test"); searchFields.put("authors", "fra"); QueryRequest request = new QueryRequest(); PagedRequest paging = new PagedRequest(); paging.setOffset(offsetIndex); paging.setLimit(limitIndex); request.setPaging(paging); OrderedRequest ordering = new OrderedRequest(); ordering.setDirection(sDirection); ordering.setFields(orderByFields); request.setOrdering(ordering); Document query = null; if(searchFields!=null) { BasicDBObjectBuilder builder = BasicDBObjectBuilder.start(); query = new Document(); for (String key : searchFields.keySet()) { //builder.append(key, new BasicDBObject("$eq", searchFields.get(key))); BasicDBObject bs = new BasicDBObject(); bs.append("$regex", searchFields.get(key)); bs.append("$options", "i"); builder.append(key, bs); //query.put(key, new BasicDBObject("$eq", searchFields.get(key))); //query = new Document(key, searchFields.get(key)); } // query.putAll(builder.get().toMap()); // request.setFilter(query); BasicDBList list = new BasicDBList(); list.add(builder.get().toMap()); query.put("$or", list); //or(query); request.setFilter(query); //************************************************ AND // query = new Document(); // for (String key : searchFields.keySet()) { // //AND // BasicDBObject bs = new BasicDBObject(); // bs.append("$regex", searchFields.get(key)); // bs.append("$options", "i"); // query.put(key, bs); // // } // request.setFilter(query); //******************************************** END AND } //OR /*query = new Document(); BasicDBObject container = new BasicDBObject(); BsonArray bArray = new BsonArray(); for (String key : searchFields.keySet()) { //AND BasicDBObject bs = new BasicDBObject(); bs.append("$regex", searchFields.get(key)); bs.append("$options", "i"); query.put(key, bs); //container.put(key, bs); // BasicDBObject bs2 = new BasicDBObject(); // bs2.append("$regex", searchFields.get(key)); // bs2.append("$options", "i"); // BsonDocument bsK = new BsonDocument(); // bsK.append(key, new BsonString(bs2.toJson())); // bArray.add(bsK); } // query.put("$or", bArray); BasicDBList list = new BasicDBList(); list.add(query); Document orDocument = new Document(); orDocument.put("$or", list); // query = orDocument; request.setFilter(query);*/ System.out.println("Paging offset: " + offsetIndex + ", limit: " + limitIndex); System.out.println("Direction: " + sDirection); System.out.println("Order by Fields: " + orderByFields); System.out.println("Search for: " + query); System.out.println("Search for Query to JSON: "+query.toJson()); Iterator concessioni = clientMongo.query(request); if(concessioni.hasNext()) { System.out.println("Found concessioni, printing them..."); }else System.out.println("No concessione found"); if (concessioni != null) { while (concessioni.hasNext()) { Concessione concessione = (Concessione) concessioni.next(); System.out.println(concessione.getNome()); } } }catch (Exception e) { e.printStackTrace(); } } //@Test public void readUserRights() throws Exception { new GNARoleRitghtsConfigReader(); List listUserRights = GNARoleRitghtsConfigReader.readRoleRightsConfig(); System.out.println(listUserRights); } }