initial commit

This commit is contained in:
Aldo Mihasi 2022-12-06 13:28:08 +02:00
commit c946b6b935
10 changed files with 420 additions and 0 deletions

24
depositinterface/pom.xml Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/>
</parent>
<groupId>eu.eudat</groupId>
<artifactId>depositinterface</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,130 @@
package eu.eudat.depositinterface.models;
import org.springframework.http.ResponseEntity;
import java.io.File;
import java.util.Set;
import java.util.UUID;
public class DMPDepositModel {
private UUID id;
private int version;
private String label;
private String description;
private boolean isPublic;
private Set<UserDMPDepositModel> users;
private Set<OrganisationDepositModel> organisations;
private Set<ResearcherDepositModel> researchers;
private GrantDepositModel grant;
private File pdfFile;
private String pdfFileName;
private ResponseEntity<byte[]> rdaJson;
private File supportingFilesZip;
private String previousDOI;
private String extraProperties;
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public boolean isPublic() {
return isPublic;
}
public void setPublic(boolean aPublic) {
isPublic = aPublic;
}
public Set<UserDMPDepositModel> getUsers() {
return users;
}
public void setUsers(Set<UserDMPDepositModel> users) {
this.users = users;
}
public Set<OrganisationDepositModel> getOrganisations() {
return organisations;
}
public void setOrganisations(Set<OrganisationDepositModel> organisations) {
this.organisations = organisations;
}
public Set<ResearcherDepositModel> getResearchers() {
return researchers;
}
public void setResearchers(Set<ResearcherDepositModel> researchers) {
this.researchers = researchers;
}
public GrantDepositModel getGrant() {
return grant;
}
public void setGrant(GrantDepositModel grant) {
this.grant = grant;
}
public File getPdfFile() {
return pdfFile;
}
public void setPdfFile(File pdfFile) {
this.pdfFile = pdfFile;
}
public String getPdfFileName() {
return pdfFileName;
}
public void setPdfFileName(String pdfFileName) {
this.pdfFileName = pdfFileName;
}
public ResponseEntity<byte[]> getRdaJson() {
return rdaJson;
}
public void setRdaJson(ResponseEntity<byte[]> rdaJson) {
this.rdaJson = rdaJson;
}
public File getSupportingFilesZip() {
return supportingFilesZip;
}
public void setSupportingFilesZip(File supportingFilesZip) {
this.supportingFilesZip = supportingFilesZip;
}
public String getPreviousDOI() {
return previousDOI;
}
public void setPreviousDOI(String previousDOI) {
this.previousDOI = previousDOI;
}
public String getExtraProperties() {
return extraProperties;
}
public void setExtraProperties(String extraProperties) {
this.extraProperties = extraProperties;
}
}

View File

@ -0,0 +1,12 @@
package eu.eudat.depositinterface.models;
public class FunderDepositModel {
private String label;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}

View File

@ -0,0 +1,30 @@
package eu.eudat.depositinterface.models;
import java.util.UUID;
public class GrantDepositModel {
private UUID id;
private String reference;
private FunderDepositModel funder;
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public FunderDepositModel getFunder() {
return funder;
}
public void setFunder(FunderDepositModel funder) {
this.funder = funder;
}
}

View File

@ -0,0 +1,12 @@
package eu.eudat.depositinterface.models;
public class OrganisationDepositModel {
private String label;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}

View File

@ -0,0 +1,20 @@
package eu.eudat.depositinterface.models;
public class ResearcherDepositModel {
private String label;
private String reference;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
}

View File

@ -0,0 +1,47 @@
package eu.eudat.depositinterface.models;
public class UserDMPDepositModel {
public enum UserDMPRoles {
OWNER(0), USER(1);
private int value;
UserDMPRoles(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public static UserDMPRoles fromInteger(int value) {
switch (value) {
case 0:
return OWNER;
case 1:
return USER;
default:
throw new RuntimeException("Unsupported User Dmp Role Message Code");
}
}
}
private UserInfoDepositModel user;
private Integer role;
public UserInfoDepositModel getUser() {
return user;
}
public void setUser(UserInfoDepositModel user) {
this.user = user;
}
public Integer getRole() {
return role;
}
public void setRole(Integer role) {
this.role = role;
}
}

View File

@ -0,0 +1,20 @@
package eu.eudat.depositinterface.models;
public class UserInfoDepositModel {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}

View File

@ -0,0 +1,13 @@
package eu.eudat.depositinterface.repository;
import eu.eudat.depositinterface.models.DMPDepositModel;
public interface RepositoryDeposit {
String deposit(DMPDepositModel dmpDepositModel, String repositoryAccessToken) throws Exception;
String authenticate(String code);
RepositoryDepositConfiguration getConfiguration();
}

View File

@ -0,0 +1,112 @@
package eu.eudat.depositinterface.repository;
public class RepositoryDepositConfiguration {
public enum DepositType {
SystemDeposit(0), UserDeposit(1), BothWaysDeposit(2);
private int value;
DepositType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public static DepositType fromInteger(int value) {
switch (value) {
case 0:
return SystemDeposit;
case 1:
return UserDeposit;
case 2:
return BothWaysDeposit;
default:
throw new RuntimeException("Unsupported Deposit Account Type");
}
}
}
private int depositType;
private String repositoryId;
private String accessToken;
private String repositoryUrl;
private String repositoryAuthorizationUrl;
private String repositoryRecordUrl;
private String repositoryAccessTokenUrl;
private String repositoryClientId;
private String repositoryClientSecret;
private String redirectUri;
public int getDepositType() {
return depositType;
}
public void setDepositType(int depositType) {
this.depositType = depositType;
}
public String getRepositoryId() {
return repositoryId;
}
public void setRepositoryId(String repositoryId) {
this.repositoryId = repositoryId;
}
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
public String getRepositoryUrl() {
return repositoryUrl;
}
public void setRepositoryUrl(String repositoryUrl) {
this.repositoryUrl = repositoryUrl;
}
public String getRepositoryAuthorizationUrl() {
return repositoryAuthorizationUrl;
}
public void setRepositoryAuthorizationUrl(String repositoryAuthorizationUrl) {
this.repositoryAuthorizationUrl = repositoryAuthorizationUrl;
}
public String getRepositoryRecordUrl() {
return repositoryRecordUrl;
}
public void setRepositoryRecordUrl(String repositoryRecordUrl) {
this.repositoryRecordUrl = repositoryRecordUrl;
}
public String getRepositoryAccessTokenUrl() {
return repositoryAccessTokenUrl;
}
public void setRepositoryAccessTokenUrl(String repositoryAccessTokenUrl) {
this.repositoryAccessTokenUrl = repositoryAccessTokenUrl;
}
public String getRepositoryClientId() {
return repositoryClientId;
}
public void setRepositoryClientId(String repositoryClientId) {
this.repositoryClientId = repositoryClientId;
}
public String getRepositoryClientSecret() {
return repositoryClientSecret;
}
public void setRepositoryClientSecret(String repositoryClientSecret) {
this.repositoryClientSecret = repositoryClientSecret;
}
public String getRedirectUri() {
return redirectUri;
}
public void setRedirectUri(String redirectUri) {
this.redirectUri = redirectUri;
}
}