gcube-cms-suite/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManagerI.java

48 lines
2.8 KiB
Java
Raw Normal View History

2021-11-12 16:41:25 +01:00
package org.gcube.application.geoportal.service.engine.mongo;
2021-12-01 11:13:34 +01:00
import com.fasterxml.jackson.core.JsonProcessingException;
import org.bson.Document;
2022-02-14 17:06:32 +01:00
import org.gcube.application.cms.plugins.faults.EventException;
2022-04-08 13:17:52 +02:00
import org.gcube.application.cms.plugins.faults.InsufficientPrivileges;
2021-12-07 16:42:39 +01:00
import org.gcube.application.cms.plugins.faults.StepException;
2022-01-17 18:19:40 +01:00
import org.gcube.application.geoportal.common.faults.StorageException;
2022-03-10 18:15:10 +01:00
import org.gcube.application.geoportal.common.model.configuration.Configuration;
2021-11-12 16:41:25 +01:00
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
2022-01-27 15:02:53 +01:00
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
2022-02-04 17:45:47 +01:00
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
2022-03-24 17:44:00 +01:00
import org.gcube.application.geoportal.service.model.internal.faults.*;
2022-01-17 18:19:40 +01:00
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
2021-12-01 11:13:34 +01:00
import java.io.IOException;
2021-11-12 16:41:25 +01:00
public interface MongoManagerI<T> {
// create
2022-04-01 19:11:11 +02:00
public T registerNew(Document toRegister) throws IOException, StepException, EventException, InvalidUserRoleException;
2021-11-12 16:41:25 +01:00
// update
2022-03-24 17:44:00 +01:00
public T update(String id,Document toSetDocument) throws IOException, StepException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
2021-11-12 16:41:25 +01:00
// delete
2022-03-29 18:06:09 +02:00
public void delete(String id,boolean force) throws DeletionException, InvalidUserRoleException, ProjectLockedException, ProjectNotFoundException, UnauthorizedAccess, JsonProcessingException, InvalidLockException;
2021-11-12 16:41:25 +01:00
// get By ID
2022-03-24 17:44:00 +01:00
public T getByID(String id) throws IOException, ProjectNotFoundException, InvalidUserRoleException, UnauthorizedAccess;
2021-11-12 16:41:25 +01:00
// query
2022-03-24 17:44:00 +01:00
public Iterable<Document> query(QueryRequest request) throws InvalidUserRoleException;
public Iterable<T> filter(QueryRequest request) throws InvalidUserRoleException;
2021-11-12 16:41:25 +01:00
2022-04-08 13:17:52 +02:00
public T performStep(String id, String step, Document options) throws IOException, StepException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess, ConfigurationException, InsufficientPrivileges;
2021-11-12 16:41:25 +01:00
2022-03-24 17:44:00 +01:00
public T registerFileSet(String id, RegisterFileSetRequest request) throws ConfigurationException, StorageHubException, StorageException, StepException, JsonProcessingException, DeletionException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
public T deleteFileSet(String id, String destination, Boolean force) throws ConfigurationException, StorageHubException, StorageException, StepException, JsonProcessingException, DeletionException, EventException, ProjectLockedException, ProjectNotFoundException, InvalidLockException, InvalidUserRoleException, UnauthorizedAccess;
2022-02-04 17:45:47 +01:00
public Configuration getConfiguration()throws ConfigurationException;
2021-11-12 16:41:25 +01:00
}