diff --git a/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java b/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java index 5a82931..5d22d73 100644 --- a/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java +++ b/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java @@ -2,6 +2,8 @@ package eu.eudat.depositinterface.repository; import eu.eudat.depositinterface.models.DMPDepositModel; +import java.util.List; + /** * The RepositoryDeposit interface represents the mechanism of depositing a dmp to any * repository which mints a persistent digital object identifier (DOI) for each submission, @@ -13,6 +15,7 @@ public interface RepositoryDeposit { * Returns a string representing the persistent digital object identifier (DOI) which * was created. * + * @param repositoryId the id of the repository * @param dmpDepositModel dmp structure which is to be deposited * @param repositoryAccessToken access token needed for the authentication to the repository * if this is null, another authentication mechanism is used for @@ -21,20 +24,21 @@ public interface RepositoryDeposit { * @return a string representing the persistent digital object identifier (DOI) * @throws Exception if an error occurs while trying to deposit the dmp */ - String deposit(DMPDepositModel dmpDepositModel, String repositoryAccessToken) throws Exception; + String deposit(String repositoryId, DMPDepositModel dmpDepositModel, String repositoryAccessToken) throws Exception; /** * Returns the access token from the oauth2 flow. * + * @param repositoryId the id of the repository * @param code oauth2 authorization code * @return the access token or null if no oauth2 protocol is not supported for that repository */ - String authenticate(String code); + String authenticate(String repositoryId, String code); /** * Returns the repository's configuration. * - * @return structure representing the configuration of the repository
+ * @return List of structure representing the configuration of the repository
* which includes the following fields:
* depositType - an integer representing how the dmp user can deposit in the repository, * 0 stands for system deposition meaning the dmp is deposited using argos credentials to the @@ -51,13 +55,14 @@ public interface RepositoryDeposit { * repositoryClientSecret - repository's client secret
* redirectUri - redirect uri to argos after the oauth2 flow from the repository
*/ - RepositoryDepositConfiguration getConfiguration(); + List getConfiguration(); /** * Returns the repository's logo if exists. * + * @param repositoryId the id of the repository * @return the repository's logo in base64 form * */ - String getLogo(); + String getLogo(String repositoryId); }