package eu.dnetlib.repo.manager.service; import eu.dnetlib.repo.manager.exception.BrokerException; import eu.dnetlib.repo.manager.domain.Term; import eu.dnetlib.repo.manager.domain.broker.*; import org.json.JSONException; import org.springframework.http.ResponseEntity; import java.io.IOException; import java.util.List; import java.util.Map; public interface BrokerService { DatasourcesBroker getDatasourcesOfUser(String user, String includeShared, String includeByOthers) throws BrokerException, JSONException; List getTopicsForDatasource(String datasourceName) throws BrokerException; EventsPage advancedShowEvents(String page, String size, AdvQueryObject advQueryObject) throws BrokerException, JSONException ,IOException; EventsPage showEvents(String datasourceName, String topic, String page, String size) throws BrokerException, JSONException; Map> getSimpleSubscriptionsOfUser(String userEmail) throws BrokerException; Map> getSimpleSubscriptionsOfUserByRepoId(String userEmail, String repoId) throws BrokerException; Subscription subscribe(OpenaireSubscription obj) throws BrokerException; ResponseEntity unsubscribe(String subscriptionId) throws BrokerException; Subscription getSubscription(String subscriptionId) throws BrokerException; Map getDnetTopics() throws BrokerException; EventsPage getNotificationsBySubscriptionId(String subscriptionId, String page, String size) throws BrokerException; Map> getSubscriptionsOfUser(String userEmail) throws BrokerException; }