2020-10-20 15:25:26 +02:00
|
|
|
package org.gcube.portlets.user.geoportaldataentry.client;
|
|
|
|
|
2021-08-04 17:11:46 +02:00
|
|
|
import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni;
|
2020-10-20 15:25:26 +02:00
|
|
|
|
2021-08-04 17:11:46 +02:00
|
|
|
import java.util.ArrayList;
|
2021-12-01 11:54:39 +01:00
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.HashMap;
|
2021-08-04 17:11:46 +02:00
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.List;
|
2021-12-01 11:54:39 +01:00
|
|
|
import java.util.Map;
|
2021-08-04 17:11:46 +02:00
|
|
|
|
2021-12-01 11:54:39 +01:00
|
|
|
import org.bson.Document;
|
2021-08-04 17:11:46 +02:00
|
|
|
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
2021-12-01 11:54:39 +01:00
|
|
|
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;
|
2021-08-04 17:11:46 +02:00
|
|
|
import org.gcube.application.geoportal.common.rest.MongoConcessioni;
|
|
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
|
|
|
import org.gcube.common.scope.api.ScopeProvider;
|
2020-10-20 15:25:26 +02:00
|
|
|
|
2021-12-02 12:25:05 +01:00
|
|
|
import com.mongodb.BasicDBList;
|
2021-12-01 11:54:39 +01:00
|
|
|
import com.mongodb.BasicDBObject;
|
2021-12-02 12:25:05 +01:00
|
|
|
import com.mongodb.BasicDBObjectBuilder;
|
2021-12-01 11:54:39 +01:00
|
|
|
|
2020-10-20 15:25:26 +02:00
|
|
|
public class TestClass {
|
2021-08-04 17:11:46 +02:00
|
|
|
|
2021-12-02 12:25:05 +01:00
|
|
|
private static String TOKEN = "";
|
2021-11-26 16:05:05 +01:00
|
|
|
private static String CONTEXT = "/gcube/devsec/devVRE";
|
|
|
|
private static String USERNAME = "francesco.mangiacrapa";
|
|
|
|
|
2021-12-15 15:43:36 +01:00
|
|
|
//@Before
|
2021-11-26 16:05:05 +01:00
|
|
|
public void init() {
|
|
|
|
ScopeProvider.instance.set(CONTEXT);
|
|
|
|
SecurityTokenProvider.instance.set(TOKEN);
|
2020-10-20 15:25:26 +02:00
|
|
|
}
|
2021-08-04 17:11:46 +02:00
|
|
|
|
2021-12-02 17:13:55 +01:00
|
|
|
// @Test
|
2021-11-26 16:05:05 +01:00
|
|
|
public void getListConcessioniTest() throws Exception {
|
2021-08-04 17:11:46 +02:00
|
|
|
MongoConcessioni clientMongo = mongoConcessioni().build();
|
|
|
|
Iterator<Concessione> concessioni = clientMongo.getList();
|
|
|
|
List<Concessione> listOfConcessioni = new ArrayList<Concessione>();
|
|
|
|
if (concessioni != null) {
|
|
|
|
while (concessioni.hasNext()) {
|
|
|
|
Concessione concessione = (Concessione) concessioni.next();
|
|
|
|
listOfConcessioni.add(concessione);
|
2021-11-26 16:05:05 +01:00
|
|
|
|
2021-08-04 17:11:46 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
int i = 0;
|
|
|
|
for (Concessione concessione : listOfConcessioni) {
|
2021-11-26 16:05:05 +01:00
|
|
|
System.out.println(++i + " " + concessione);
|
2021-08-04 17:11:46 +02:00
|
|
|
}
|
|
|
|
}
|
2021-12-02 17:13:55 +01:00
|
|
|
|
2021-12-15 15:43:36 +01:00
|
|
|
//@Test
|
2021-12-01 11:54:39 +01:00
|
|
|
public void queryConcessioniTest() throws Exception {
|
|
|
|
try {
|
2021-12-02 17:13:55 +01:00
|
|
|
MongoConcessioni clientMongo = mongoConcessioni().build();
|
|
|
|
int offsetIndex = 0;
|
|
|
|
int limitIndex = 25;
|
|
|
|
Direction sDirection = Direction.ASCENDING;
|
|
|
|
List<String> orderByFields = Arrays.asList("nome");
|
|
|
|
|
|
|
|
Map<String, Object> searchFields = new HashMap<String, Object>();
|
|
|
|
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));
|
|
|
|
}
|
|
|
|
|
2021-12-02 12:25:05 +01:00
|
|
|
// query.putAll(builder.get().toMap());
|
|
|
|
// request.setFilter(query);
|
2021-12-02 17:13:55 +01:00
|
|
|
|
|
|
|
BasicDBList list = new BasicDBList();
|
|
|
|
list.add(builder.get().toMap());
|
|
|
|
query.put("$or", list);
|
|
|
|
// or(query);
|
|
|
|
request.setFilter(query);
|
|
|
|
|
|
|
|
// ************************************************ AND
|
2021-12-02 12:25:05 +01:00
|
|
|
// 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);
|
2021-12-02 17:13:55 +01:00
|
|
|
// ******************************************** 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<Concessione> 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());
|
|
|
|
|
|
|
|
}
|
2021-12-01 11:54:39 +01:00
|
|
|
|
|
|
|
}
|
2021-12-02 17:13:55 +01:00
|
|
|
} catch (Exception e) {
|
2021-12-01 11:54:39 +01:00
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
2021-08-04 17:11:46 +02:00
|
|
|
|
2021-12-02 17:13:55 +01:00
|
|
|
// @Test
|
|
|
|
// public void readUserRights() throws Exception {
|
|
|
|
// new GNARoleRitghtsConfigReader();
|
|
|
|
// List<RoleRights> listUserRights = GNARoleRitghtsConfigReader.readRoleRightsConfig();
|
|
|
|
// System.out.println(listUserRights);
|
|
|
|
// }
|
|
|
|
|
2021-12-06 17:24:27 +01:00
|
|
|
|
2021-11-26 16:05:05 +01:00
|
|
|
|
2020-10-20 15:25:26 +02:00
|
|
|
}
|