package eu.dnetlib.repo.manager.service; import eu.dnetlib.api.functionality.ValidatorServiceException; import eu.dnetlib.repo.manager.domain.*; import eu.dnetlib.repo.manager.exception.RepositoryServiceException; import eu.dnetlib.repo.manager.exception.ResourceNotFoundException; import org.json.JSONException; import org.springframework.security.core.Authentication; import java.util.List; import java.util.Map; public interface RepositoryService { // TODO: move this elsewhere Country[] getCountries(); List getRepositories(List ids); List getRepositories(List ids, int page, int size); List getRepositoriesSnippets(List ids) throws Exception; List getRepositoriesSnippets(List ids, int page, int size) throws Exception; List getRepositoriesByCountry(String country, String mode, Boolean managed); // TODO: remove? List getRepositoriesOfUser(String page, String size); // TODO: remove? List getRepositoriesOfUser(String userEmail, String page, String size); List getRepositoriesSnippetsOfUser(String page, String size); List getRepositoriesSnippetsOfUser(String userEmail, String page, String size); RepositorySnippet getRepositorySnippetById(String id) throws ResourceNotFoundException; Repository getRepositoryById(String id) throws ResourceNotFoundException; List getRepositoriesByName(String name, String page, String size); List searchRegisteredRepositories(String country, String typology, String englishName, String officialName, String requestSortBy, String order, int page, int pageSize); Integer getTotalRegisteredRepositories(); List getRepositoryInterface(String id); Repository addRepository(String datatype, Repository repository); void deleteRepositoryInterface(String id, String registeredBy); RepositoryInterface addRepositoryInterface(String datatype, String repoId, String comment, RepositoryInterface repositoryInterface, String desiredCompatibilityLevel) throws Exception; List getDnetCountries(); List getTypologies(); List getTimezones(); Repository updateRepository(Repository repository, Authentication authentication); List getUrlsOfUserRepos(String userEmail, String page, String size); Map getCompatibilityClasses(String mode); Map getDatasourceClasses(String mode); String getCountryName(String countryCode); MetricsInfo getMetricsInfoForRepository(String repoId) throws RepositoryServiceException; Map getListLatestUpdate(String mode); RepositoryInterface updateRepositoryInterface(String repoId, String comment, RepositoryInterface repositoryInterface, String desiredCompatibilityLevel) throws ResourceNotFoundException, ValidatorServiceException; void updateInterfaceCompliance(String repositoryId, String repositoryInterfaceId, String compliance); }