From ffdc580f0fc3520be855dad527a92ca82b4c1594 Mon Sep 17 00:00:00 2001 From: Aldo Mihasi Date: Fri, 30 Dec 2022 16:10:30 +0200 Subject: [PATCH] readme --- README.md | 2 + .../repository/RepositoryDeposit.java | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..056713c --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +The repository-deposit-base module inlcudes the RepositoryDeposit interface which represents the mechanism of depositing a dmp to any +repository which mints a persistent digital object identifier (DOI) for each submission, which makes the stored dmps easily citeable. \ No newline at end of file diff --git a/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java b/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java index 80b5bac..aede776 100644 --- a/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java +++ b/src/main/java/eu/eudat/depositinterface/repository/RepositoryDeposit.java @@ -2,12 +2,55 @@ package eu.eudat.depositinterface.repository; import eu.eudat.depositinterface.models.DMPDepositModel; +/** + * The RepositoryDeposit interface represents the mechanism of depositing a dmp to any + * repository which mints a persistent digital object identifier (DOI) for each submission, + * which makes the stored dmps easily citeable. + */ public interface RepositoryDeposit { + /** + * Returns a string representing the persistent digital object identifier (DOI) which + * was created. + * + * @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 + * that repository e.g. api token which will be fetched from the + * repository's configuration + * @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; + /** + * Returns the access token from the oauth2 flow. + * + * @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); + /** + * Returns the repository's configuration. + * + * @return 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 + * repository, 1 stands for user deposition in which the argos user specifies his/her own credentials + * to the repository, 2 stands for both ways deposition if the repository allows the deposits of dmps + * to be made from both argos and users accounts
+ * repositoryId - unique identifier for the repository
+ * accessToken - access token provided for the system type deposits
+ * repositoryUrl - repository url
+ * repositoryAuthorizationUrl - repository's authorization url
+ * repositoryRecordUrl - repository's record url, this url is used to index dmps that are created
+ * repositoryAccessTokenUrl - repository's access token url
+ * repositoryClientId - repository's client id
+ * repositoryClientSecret - repository's client secret
+ * redirectUri - redirect uri to argos after the oauth2 flow from the repository
+ */ RepositoryDepositConfiguration getConfiguration(); }