This repository has been archived on 2021-09-09. You can view files and clone it, but cannot push or open issues or pull requests.
geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java

69 lines
1.7 KiB
Java
Raw Normal View History

2020-11-11 18:17:06 +01:00
package org.gcube.application.geoportal.service.engine.mongo;
2020-11-18 18:06:38 +01:00
import org.bson.Document;
import org.gcube.application.geoportal.common.model.profile.Profile;
import org.gcube.application.geoportal.common.model.project.Project;
import org.gcube.application.geoportal.model.fault.ConfigurationException;
2020-11-11 18:17:06 +01:00
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
import com.mongodb.MongoClient;
2020-11-18 18:06:38 +01:00
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
2020-11-11 18:17:06 +01:00
public class MongoManager {
private MongoClient client=null;
2020-11-18 18:06:38 +01:00
public MongoManager() throws ConfigurationException {
2020-11-11 18:17:06 +01:00
client=ImplementationProvider.get().getMongoClientProvider().getClient();
2020-11-18 18:06:38 +01:00
// init profile
2020-11-11 18:17:06 +01:00
}
2020-11-18 18:06:38 +01:00
private MongoDatabase getDatabase() {
return client.getDatabase("gna-db");
}
2020-11-11 18:17:06 +01:00
//*********** PROJECTS
2020-11-18 18:06:38 +01:00
public void insert(Project proj, Profile profile) {
MongoDatabase database=getDatabase();
// TODO check if existing DB
String collectionName=profile.getName();
MongoCollection<Document> collection = database.getCollection(collectionName);
// TODO check if existing collection
collection.insertOne(Document.parse(proj.toString()));
}
2020-11-16 18:21:07 +01:00
// public Project update(Project proj) {
//
// }
2020-11-11 18:17:06 +01:00
2020-11-18 18:06:38 +01:00
public void delete(String id) {
}
public Document getById(String id,Profile p) {
MongoDatabase database=getDatabase();
MongoCollection<Document> coll=database.getCollection(p.getName());
return coll.find(new Document("id",id)).first();
}
public FindIterable<Document> iterate(Document filter,Profile p) {
MongoDatabase database=getDatabase();
MongoCollection<Document> coll=database.getCollection(p.getName());
return coll.find(filter);
}
2020-11-11 18:17:06 +01:00
//********** PROFILES
2020-11-18 18:06:38 +01:00
2020-11-11 18:17:06 +01:00
}