package eu.dnetlib.repo.manager.service; import eu.dnetlib.api.functionality.ValidatorServiceException; import eu.dnetlib.domain.data.Repository; import eu.dnetlib.domain.data.RepositoryInterface; import eu.dnetlib.repo.manager.domain.*; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; import org.json.JSONException; import org.springframework.security.core.Authentication; import java.io.IOException; import java.util.List; import java.util.Map; public interface RepositoryService { Country[] getCountries() ; List getRepositoriesByCountry(String country, String mode, Boolean managed) throws JSONException, IOException; List getRepositoriesOfUser(String userEmail, String page, String size) throws JSONException; Repository getRepositoryById(String id) throws JSONException, ResourceNotFoundException; List getRepositoryAggregations(String id, int from, int size) throws JSONException; Map> getRepositoryAggregationsByYear(String id) throws JSONException; List getRepositoriesByName(String name, String page, String size) throws JSONException; List searchRegisteredRepositories(String country, String typology, String englishName, String officialName, String requestSortBy, String order, int page, int pageSize) throws Exception; List getRepositoryInterface(String id) throws JSONException; Repository addRepository(String datatype, Repository repository) throws Exception; void deleteRepositoryInterface(String id, String registeredBy); RepositoryInterface addRepositoryInterface(String datatype, String repoId, String registeredBy, RepositoryInterface iFace) throws JSONException, ResourceNotFoundException, ValidatorServiceException; List getDnetCountries(); List getTypologies(); List getTimezones(); Repository updateRepository(Repository repository, Authentication authentication) throws Exception; List getUrlsOfUserRepos(String user_email, String page, String size) throws JSONException; List getDatasourceVocabularies(String mode); Map getCompatibilityClasses(String mode); Map getDatasourceClasses(String mode); String getCountryName(String countryCode); MetricsInfo getMetricsInfoForRepository(String repoId) throws RepositoryServiceException; Map getListLatestUpdate(String mode) throws RepositoryServiceException, JSONException; RepositoryInterface updateRepositoryInterface(String repositoryId, String registeredBy, RepositoryInterface repositoryInterface) throws Exception; }