Merge branch 'master' of gitlab.eudat.eu:dmp/OpenAIRE-EUDAT-DMP-service-pilot
This commit is contained in:
commit
eefb09a94c
|
@ -28,5 +28,10 @@
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
|
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
|
||||||
<property name="context-root" value="dmp-backend"/>
|
<property name="context-root" value="dmp-backend"/>
|
||||||
<property name="java-output-path" value="/dmp-backend/target/classes"/>
|
<property name="java-output-path" value="/dmp-backend/target/classes"/>
|
||||||
</wb-module>
|
</wb-module>
|
||||||
|
|
|
@ -271,7 +271,6 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Various libs -->
|
<!-- Various libs -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
|
|
|
@ -6,6 +6,7 @@ import java.util.UUID;
|
||||||
import dao.Dao;
|
import dao.Dao;
|
||||||
import entities.DMP;
|
import entities.DMP;
|
||||||
import entities.Organisation;
|
import entities.Organisation;
|
||||||
|
import entities.Project;
|
||||||
import entities.responses.IDLabelPair;
|
import entities.responses.IDLabelPair;
|
||||||
|
|
||||||
public interface DMPDao extends Dao<DMP, UUID> {
|
public interface DMPDao extends Dao<DMP, UUID> {
|
||||||
|
@ -14,7 +15,7 @@ public interface DMPDao extends Dao<DMP, UUID> {
|
||||||
|
|
||||||
List<IDLabelPair> listAllIDsLabels();
|
List<IDLabelPair> listAllIDsLabels();
|
||||||
|
|
||||||
List<DMP> listUserDMPs(String username);
|
List<DMP> listUserDMPs(String userID);
|
||||||
|
|
||||||
|
|
||||||
// public boolean createFromForm();
|
// public boolean createFromForm();
|
||||||
|
|
|
@ -11,6 +11,7 @@ import org.hibernate.query.Query;
|
||||||
|
|
||||||
import dao.JpaDao;
|
import dao.JpaDao;
|
||||||
import entities.DMP;
|
import entities.DMP;
|
||||||
|
import entities.Project;
|
||||||
import entities.UserInfo;
|
import entities.UserInfo;
|
||||||
import entities.responses.IDLabelPair;
|
import entities.responses.IDLabelPair;
|
||||||
|
|
||||||
|
@ -41,10 +42,12 @@ public class DMPDaoImpl extends JpaDao<DMP, UUID> implements DMPDao {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DMP> listUserDMPs(String username) {
|
public List<DMP> listUserDMPs(String userID) {
|
||||||
|
|
||||||
// String queryString = "select ui from UserInfo ui join UserAuth ui.authentication ua where ua.username=:username";
|
// String queryString = "select ui from UserInfo ui join UserAuth ui.authentication ua where ua.username=:username";
|
||||||
|
|
||||||
|
String queryString = "select ui from UserInfo ui join Project ui.pro.authentication ua where ua.username=:username";
|
||||||
|
|
||||||
|
|
||||||
// TypedQuery<UserInfo> typedQuery = entityManager.createQuery(queryString, UserInfo.class);
|
// TypedQuery<UserInfo> typedQuery = entityManager.createQuery(queryString, UserInfo.class);
|
||||||
// typedQuery.setParameter("username", username);
|
// typedQuery.setParameter("username", username);
|
||||||
|
|
|
@ -14,6 +14,5 @@ public interface DatasetDao extends Dao<Dataset, UUID> {
|
||||||
|
|
||||||
List<IDLabelPair> listAllIDsLabels();
|
List<IDLabelPair> listAllIDsLabels();
|
||||||
|
|
||||||
int assignDMPToDataset(String datasetID, String dmpID);
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -38,15 +38,5 @@ public class DatasetDaoImpl extends JpaDao<Dataset, UUID> implements DatasetDao
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int assignDMPToDataset(String datasetID , String dmpID) {
|
|
||||||
System.out.println("Dataset -> "+datasetID +" switches to dmp -> "+dmpID);
|
|
||||||
|
|
||||||
Query query = entityManager.createQuery("UPDATE Dataset dataset SET dataset.dmp=:dmpID where dataset.id=:datasetID ");
|
|
||||||
query.setParameter("dmpID", dmpID);
|
|
||||||
query.setParameter("datasetID", datasetID);
|
|
||||||
return query.executeUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,17 @@
|
||||||
package dao.entities;
|
package dao.entities;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import dao.Dao;
|
import dao.Dao;
|
||||||
import entities.DatasetProfile;
|
import entities.DatasetProfile;
|
||||||
|
import entities.responses.IDLabelPair;
|
||||||
|
|
||||||
public interface DatasetProfileDao extends Dao<DatasetProfile, UUID> {
|
public interface DatasetProfileDao extends Dao<DatasetProfile, UUID> {
|
||||||
|
|
||||||
|
public List<UUID> listAllIDs();
|
||||||
|
|
||||||
|
List<IDLabelPair> listAllIDsLabels();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,10 +1,15 @@
|
||||||
package dao.entities;
|
package dao.entities;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import javax.persistence.Query;
|
||||||
|
import javax.persistence.TypedQuery;
|
||||||
|
|
||||||
import dao.JpaDao;
|
import dao.JpaDao;
|
||||||
import entities.DatasetProfile;
|
import entities.DatasetProfile;
|
||||||
|
import entities.responses.IDLabelPair;
|
||||||
|
|
||||||
public class DatasetProfileDaoImpl extends JpaDao<DatasetProfile, UUID> implements DatasetProfileDao {
|
public class DatasetProfileDaoImpl extends JpaDao<DatasetProfile, UUID> implements DatasetProfileDao {
|
||||||
|
|
||||||
|
@ -14,5 +19,24 @@ public class DatasetProfileDaoImpl extends JpaDao<DatasetProfile, UUID> implemen
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<UUID> listAllIDs() {
|
||||||
|
String queryString = "SELECT dp.id FROM DatasetProfile dp";
|
||||||
|
TypedQuery<UUID> typedQuery = entityManager.createQuery(queryString, UUID.class);
|
||||||
|
return typedQuery.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<IDLabelPair> listAllIDsLabels() {
|
||||||
|
String queryString = "SELECT dp.id, dp.label FROM DatasetProfile dp";
|
||||||
|
Query query = (Query) entityManager.createQuery(queryString);
|
||||||
|
List<Object[]> rows = query.getResultList();
|
||||||
|
return rows.stream().map(row -> {
|
||||||
|
return new IDLabelPair(row[0].toString(), row[1].toString());
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,23 +94,6 @@ public class DMP implements Serializable {
|
||||||
private Set<Researcher> researchers;
|
private Set<Researcher> researchers;
|
||||||
|
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.LAZY)
|
|
||||||
@JoinTable(name="\"UserDMP\"",
|
|
||||||
joinColumns={@JoinColumn(name="dmp", referencedColumnName="\"ID\"")},
|
|
||||||
inverseJoinColumns={@JoinColumn(name="usr", referencedColumnName="id")}
|
|
||||||
)
|
|
||||||
private Set<UserInfo> users;
|
|
||||||
|
|
||||||
|
|
||||||
public Set<UserInfo> getUsers() {
|
|
||||||
return users;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUsers(Set<UserInfo> users) {
|
|
||||||
this.users = users;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public UUID getId() {
|
public UUID getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import java.io.Serializable;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import javax.persistence.CascadeType;
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
|
@ -13,7 +12,6 @@ import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.JoinTable;
|
import javax.persistence.JoinTable;
|
||||||
import javax.persistence.ManyToMany;
|
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
@ -64,7 +62,7 @@ public class DataRepository implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
|
@OneToMany(fetch = FetchType.LAZY)
|
||||||
@JoinTable(name="\"DatasetDataRepository\"",
|
@JoinTable(name="\"DatasetDataRepository\"",
|
||||||
joinColumns={@JoinColumn(name="\"DataRepository\"", referencedColumnName="\"ID\"")},
|
joinColumns={@JoinColumn(name="\"DataRepository\"", referencedColumnName="\"ID\"")},
|
||||||
inverseJoinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")}
|
inverseJoinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")}
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class Dataset implements Serializable {
|
||||||
private String label;
|
private String label;
|
||||||
|
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.EAGER)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
// @Cascade(value=org.hibernate.annotations.CascadeType.ALL)
|
// @Cascade(value=org.hibernate.annotations.CascadeType.ALL)
|
||||||
@JoinColumn(name = "\"DMP\"", nullable = true)
|
@JoinColumn(name = "\"DMP\"", nullable = true)
|
||||||
private DMP dmp;
|
private DMP dmp;
|
||||||
|
@ -64,14 +64,14 @@ public class Dataset implements Serializable {
|
||||||
private String properties;
|
private String properties;
|
||||||
|
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.EAGER)
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
//@Cascade(value=org.hibernate.annotations.CascadeType.ALL)
|
//@Cascade(value=org.hibernate.annotations.CascadeType.ALL)
|
||||||
@JoinColumn(name = "\"Profile\"", nullable = true)
|
@JoinColumn(name = "\"Profile\"", nullable = true)
|
||||||
private DatasetProfile profile;
|
private DatasetProfile profile;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.EAGER)
|
@OneToMany(fetch = FetchType.LAZY)
|
||||||
@JoinTable(name="\"DatasetDataRepository\"",
|
@JoinTable(name="\"DatasetDataRepository\"",
|
||||||
joinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")},
|
joinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")},
|
||||||
inverseJoinColumns={@JoinColumn(name="\"DataRepository\"", referencedColumnName="\"ID\"")}
|
inverseJoinColumns={@JoinColumn(name="\"DataRepository\"", referencedColumnName="\"ID\"")}
|
||||||
|
@ -79,7 +79,7 @@ public class Dataset implements Serializable {
|
||||||
private Set<DataRepository> dataRepositories;
|
private Set<DataRepository> dataRepositories;
|
||||||
|
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.EAGER)
|
@OneToMany(fetch = FetchType.LAZY)
|
||||||
@JoinTable(name="\"DatasetRegistry\"",
|
@JoinTable(name="\"DatasetRegistry\"",
|
||||||
joinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")},
|
joinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")},
|
||||||
inverseJoinColumns={@JoinColumn(name="\"Registry\"", referencedColumnName="\"ID\"")}
|
inverseJoinColumns={@JoinColumn(name="\"Registry\"", referencedColumnName="\"ID\"")}
|
||||||
|
@ -87,7 +87,7 @@ public class Dataset implements Serializable {
|
||||||
private Set<Registry> registries;
|
private Set<Registry> registries;
|
||||||
|
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.EAGER)
|
@OneToMany(fetch = FetchType.LAZY)
|
||||||
@JoinTable(name="\"DatasetService\"",
|
@JoinTable(name="\"DatasetService\"",
|
||||||
joinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")},
|
joinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")},
|
||||||
inverseJoinColumns={@JoinColumn(name="\"Service\"", referencedColumnName="\"ID\"")}
|
inverseJoinColumns={@JoinColumn(name="\"Service\"", referencedColumnName="\"ID\"")}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import java.io.Serializable;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import javax.persistence.CascadeType;
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
|
@ -16,15 +15,11 @@ import javax.persistence.OneToMany;
|
||||||
import javax.persistence.OneToOne;
|
import javax.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
import org.hibernate.annotations.Cascade;
|
|
||||||
import org.hibernate.annotations.GenericGenerator;
|
import org.hibernate.annotations.GenericGenerator;
|
||||||
import org.hibernate.annotations.Proxy;
|
|
||||||
import org.hibernate.annotations.Type;
|
import org.hibernate.annotations.Type;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
|
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
|
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
|
||||||
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
@ -49,14 +44,10 @@ public class DatasetProfile implements Serializable {
|
||||||
@Column(name = "\"Label\"")
|
@Column(name = "\"Label\"")
|
||||||
private String label;
|
private String label;
|
||||||
|
|
||||||
// @OneToOne(fetch = FetchType.EAGER, mappedBy = "profile")
|
@OneToMany(fetch = FetchType.LAZY, mappedBy = "profile")
|
||||||
// private Dataset dataset;
|
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.EAGER, mappedBy = "profile")
|
|
||||||
private Set<Dataset> dataset;
|
private Set<Dataset> dataset;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@OneToOne(fetch = FetchType.EAGER)
|
@OneToOne(fetch = FetchType.EAGER)
|
||||||
// @Cascade(value=org.hibernate.annotations.CascadeType.ALL)
|
// @Cascade(value=org.hibernate.annotations.CascadeType.ALL)
|
||||||
@JoinColumn(name = "\"Ruleset\"", nullable = true)
|
@JoinColumn(name = "\"Ruleset\"", nullable = true)
|
||||||
|
|
|
@ -11,6 +11,8 @@ import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.JoinTable;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
import javax.persistence.OneToOne;
|
import javax.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
@ -68,6 +70,24 @@ public class Project implements Serializable {
|
||||||
@Column(name = "\"Definition\"", columnDefinition = "xml", nullable = true)
|
@Column(name = "\"Definition\"", columnDefinition = "xml", nullable = true)
|
||||||
private String definition;
|
private String definition;
|
||||||
|
|
||||||
|
|
||||||
|
@OneToMany(fetch = FetchType.LAZY)
|
||||||
|
@JoinTable(name="\"UserProject\"",
|
||||||
|
joinColumns={@JoinColumn(name="project", referencedColumnName="\"ID\"")},
|
||||||
|
inverseJoinColumns={@JoinColumn(name="usr", referencedColumnName="id")}
|
||||||
|
)
|
||||||
|
private Set<UserInfo> users;
|
||||||
|
|
||||||
|
|
||||||
|
public Set<UserInfo> getUsers() {
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsers(Set<UserInfo> users) {
|
||||||
|
this.users = users;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public UUID getId() {
|
public UUID getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,23 +79,22 @@ public class UserInfo implements Serializable{
|
||||||
private String additionalinfo;
|
private String additionalinfo;
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.LAZY)
|
@OneToMany(fetch = FetchType.LAZY)
|
||||||
@JoinTable(name="\"UserDMP\"",
|
@JoinTable(name="\"UserProject\"",
|
||||||
joinColumns={@JoinColumn(name="usr", referencedColumnName="id")},
|
joinColumns={@JoinColumn(name="usr", referencedColumnName="id")},
|
||||||
inverseJoinColumns={@JoinColumn(name="dmp", referencedColumnName="\"ID\"")}
|
inverseJoinColumns={@JoinColumn(name="project", referencedColumnName="\"ID\"")}
|
||||||
)
|
)
|
||||||
private Set<DMP> dmps;
|
private Set<Project> projects;
|
||||||
|
|
||||||
|
|
||||||
public Set<DMP> getDmps() {
|
public Set<Project> getProjects() {
|
||||||
return dmps;
|
return projects;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDmps(Set<DMP> dmps) {
|
public void setProjects(Set<Project> projects) {
|
||||||
this.dmps = dmps;
|
this.projects = projects;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public UUID getId() {
|
public UUID getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,11 +19,11 @@ import com.fasterxml.jackson.annotation.ObjectIdGenerators;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="\"UserDMP\"")
|
@Table(name="\"UserProject\"")
|
||||||
//@Proxy(lazy = false)
|
//@Proxy(lazy = false)
|
||||||
//@JsonInclude(Include.NON_NULL)
|
//@JsonInclude(Include.NON_NULL)
|
||||||
@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
|
@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
|
||||||
public class UserDMP implements Serializable{
|
public class UserProject implements Serializable{
|
||||||
|
|
||||||
private static final long serialVersionUID = -4467370784003784660L;
|
private static final long serialVersionUID = -4467370784003784660L;
|
||||||
|
|
||||||
|
@ -38,8 +38,8 @@ public class UserDMP implements Serializable{
|
||||||
private UUID usr;
|
private UUID usr;
|
||||||
|
|
||||||
@Type(type="org.hibernate.type.PostgresUUIDType") //DEPWARN dependency to Hibernate and PostgreSQL
|
@Type(type="org.hibernate.type.PostgresUUIDType") //DEPWARN dependency to Hibernate and PostgreSQL
|
||||||
@Column(name = "dmp", nullable = false)
|
@Column(name = "project", nullable = false)
|
||||||
private UUID dmp;
|
private UUID project;
|
||||||
|
|
||||||
@Column(name = "role")
|
@Column(name = "role")
|
||||||
private Integer role;
|
private Integer role;
|
||||||
|
@ -61,12 +61,12 @@ public class UserDMP implements Serializable{
|
||||||
this.usr = usr;
|
this.usr = usr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UUID getDmp() {
|
public UUID getProject() {
|
||||||
return dmp;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDmp(UUID dmp) {
|
public void setProject(UUID project) {
|
||||||
this.dmp = dmp;
|
this.project = project;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getRole() {
|
public Integer getRole() {
|
|
@ -1,6 +1,8 @@
|
||||||
package rest.entities;
|
package rest.entities;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -86,16 +88,11 @@ public class DMPs {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/dmps/{id}" }, produces="application/json")
|
@RequestMapping(method = RequestMethod.GET, value = { "/dmps/{id}" }, produces="application/json")
|
||||||
public @ResponseBody ResponseEntity<Object> getDMP(@PathVariable("id") String id){
|
public @ResponseBody ResponseEntity<Object> getDMP(@PathVariable("id") String id){
|
||||||
try {
|
try {
|
||||||
System.out.println("Trying for id: "+ id);
|
|
||||||
DMP dmp = dMPDao.read(UUID.fromString(id));
|
DMP dmp = dMPDao.read(UUID.fromString(id));
|
||||||
System.out.println("tried, got : "+ dmp.getId());
|
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(dmp));
|
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(dmp));
|
||||||
// return ResponseEntity.status(HttpStatus.OK).body(dmp);
|
|
||||||
}
|
}
|
||||||
catch(Exception ex) {
|
catch(Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
|
@ -114,31 +111,6 @@ public class DMPs {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/dmp/ofuser" }, produces="text/plain")
|
|
||||||
public @ResponseBody ResponseEntity<Object> getDmpsOfUser(){
|
|
||||||
|
|
||||||
String userID = null;
|
|
||||||
try {
|
|
||||||
userID = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
|
|
||||||
} catch(NullPointerException ex) {
|
|
||||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("You have not logged in. You shouldn't be here");
|
|
||||||
}
|
|
||||||
|
|
||||||
UserInfo userInfo = userInfoDao.read(UUID.fromString(userID));
|
|
||||||
|
|
||||||
if(userInfo==null) //this should normally never happer
|
|
||||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There's no such a user on the system. You shouldn't be here");
|
|
||||||
|
|
||||||
try {
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(userInfo.getDmps()));
|
|
||||||
}
|
|
||||||
catch(Exception ex) {
|
|
||||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This should be called on extreme cases. It's computationally intensive
|
* This should be called on extreme cases. It's computationally intensive
|
||||||
|
@ -169,7 +141,7 @@ public class DMPs {
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/create" }, consumes = "application/json", produces="application/json")
|
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/create" }, consumes = "application/json", produces="application/json")
|
||||||
public @ResponseBody ResponseEntity<Object> setDMP(@RequestBody DMP dmp) {
|
public @ResponseBody ResponseEntity<Object> createDMP(@RequestBody DMP dmp) {
|
||||||
DMP createdDmp = dMPDao.update(dmp);
|
DMP createdDmp = dMPDao.update(dmp);
|
||||||
try {
|
try {
|
||||||
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(createdDmp));
|
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(createdDmp));
|
||||||
|
@ -179,6 +151,19 @@ public class DMPs {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/update" }, consumes = "application/json", produces="application/json")
|
||||||
|
public @ResponseBody ResponseEntity<Object> updateDMP(@RequestBody DMP dmp) {
|
||||||
|
DMP updatedDMP = dMPDao.update(dmp);
|
||||||
|
try {
|
||||||
|
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(updatedDMP));
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not update DMP!\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/set/full" }, consumes = "application/json", produces="application/json")
|
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/set/full" }, consumes = "application/json", produces="application/json")
|
||||||
public @ResponseBody ResponseEntity<Object> setFullDMP(@RequestBody DMP dmp) {
|
public @ResponseBody ResponseEntity<Object> setFullDMP(@RequestBody DMP dmp) {
|
||||||
|
@ -284,25 +269,76 @@ public class DMPs {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
// OLD ONES, USED BY THE EMBEDDED (simple) UI OF THIS SERVICE
|
////////////////////////////////
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/setDMPByForm" }, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces="text/plain")
|
//// USER - RELATED ACTIONS ////
|
||||||
public @ResponseBody ResponseEntity<Object> setDMPByForm(@RequestBody MultiValueMap<String,String> formData) {
|
////////////////////////////////
|
||||||
//create the whole dmp structure by the form fields
|
|
||||||
DMP dmp = Transformers.createDMPfromMap(formData);
|
@RequestMapping(method = RequestMethod.GET, value = { "/dmp/getofuser" }, produces="text/plain")
|
||||||
return setDMP(dmp);
|
public @ResponseBody ResponseEntity<Object> getDmpsOfUser(){
|
||||||
|
|
||||||
|
String userID = null;
|
||||||
|
try {
|
||||||
|
userID = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
|
||||||
|
} catch(NullPointerException ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("You have not logged in. You shouldn't be here");
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/editDMPByForm" }, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces="text/plain")
|
UserInfo userInfo = userInfoDao.read(UUID.fromString(userID));
|
||||||
public @ResponseBody ResponseEntity<Object> editDMPByForm(@RequestBody MultiValueMap<String,String> formData) {
|
|
||||||
//get previous DMP by id, replace fields, and update
|
if(userInfo==null) //this should normally never happer
|
||||||
DMP dmp = dMPDao.read(UUID.fromString(formData.getFirst("dmp-id")));
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There's no such a user on the system. You shouldn't be here");
|
||||||
dmp.getDataset().getProfile().setDefinition(formData.getFirst("DatasetProfile.definition"));
|
|
||||||
dmp.getDataset().getProfile().getRuleset().setDefinition(formData.getFirst("DatasetProfileRuleset.definition"));
|
try {
|
||||||
dmp.getDataset().getProfile().getViewstyle().setDefinition(formData.getFirst("DatasetProfileViewStyle.definition"));
|
Set<DMP> userDMPs = new HashSet<DMP>();
|
||||||
return setDMP(dmp);
|
|
||||||
|
userInfo.getProjects().forEach(project -> {
|
||||||
|
userDMPs.addAll(project.getDmps());
|
||||||
|
});
|
||||||
|
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(userDMPs));
|
||||||
}
|
}
|
||||||
*/
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.GET, value = { "/dmp/createforproject" }, produces="text/plain")
|
||||||
|
public @ResponseBody ResponseEntity<Object> createDmpOfProject(@RequestParam("projectid") String projectid, @RequestBody DMP dmp){
|
||||||
|
|
||||||
|
UUID projIdUuid;
|
||||||
|
try {
|
||||||
|
projIdUuid = UUID.fromString(projectid);
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.NOT_MODIFIED).body("Did not specify an id or id was not valid... Could not do anything");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
dmp.setId(null);
|
||||||
|
dmp = dMPDao.create(dmp);
|
||||||
|
|
||||||
|
Project project = projectDao.read(projIdUuid);
|
||||||
|
|
||||||
|
Set<DMP> dmps = project.getDmps();
|
||||||
|
if(dmps == null)
|
||||||
|
dmps = new HashSet<DMP>();
|
||||||
|
dmps.add(dmp);
|
||||||
|
project.setDmps(dmps);
|
||||||
|
|
||||||
|
project = projectDao.update(project);
|
||||||
|
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(dmp));
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,259 @@
|
||||||
|
package rest.entities;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.SerializationUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.util.MultiValueMap;
|
||||||
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonParseException;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import dao.entities.DMPDao;
|
||||||
|
import dao.entities.DMPProfileDao;
|
||||||
|
import dao.entities.DataRepositoryDao;
|
||||||
|
import dao.entities.DatasetDao;
|
||||||
|
import dao.entities.DatasetProfileDao;
|
||||||
|
import dao.entities.DatasetProfileRulesetDao;
|
||||||
|
import dao.entities.DatasetProfileViewstyleDao;
|
||||||
|
import dao.entities.OrganisationDao;
|
||||||
|
import dao.entities.ProjectDao;
|
||||||
|
import dao.entities.RegistryDao;
|
||||||
|
import dao.entities.ResearcherDao;
|
||||||
|
import dao.entities.ServiceDao;
|
||||||
|
import entities.DMP;
|
||||||
|
import entities.DMPProfile;
|
||||||
|
import entities.Dataset;
|
||||||
|
import entities.DatasetProfile;
|
||||||
|
import entities.DatasetProfileRuleset;
|
||||||
|
import entities.DatasetProfileViewstyle;
|
||||||
|
import entities.Organisation;
|
||||||
|
import entities.Project;
|
||||||
|
import helpers.SerializerProvider;
|
||||||
|
import helpers.Transformers;
|
||||||
|
import responses.RestResponse;
|
||||||
|
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@CrossOrigin
|
||||||
|
public class DatasetProfiles {
|
||||||
|
|
||||||
|
@Autowired private DataRepositoryDao dataRepositoryDao;
|
||||||
|
@Autowired private DatasetDao datasetDao;
|
||||||
|
@Autowired private DatasetProfileDao datasetProfileDao;
|
||||||
|
@Autowired private DatasetProfileRulesetDao datasetProfileRulesetDao;
|
||||||
|
@Autowired private DatasetProfileViewstyleDao datasetProfileViewstyleDao;
|
||||||
|
@Autowired private DMPDao dMPDao;
|
||||||
|
@Autowired private DMPProfileDao dMPProfileDao;
|
||||||
|
@Autowired private OrganisationDao organisationDao;
|
||||||
|
@Autowired private ProjectDao projectDao;
|
||||||
|
@Autowired private RegistryDao registryDao;
|
||||||
|
@Autowired private ResearcherDao researcherDao;
|
||||||
|
@Autowired private ServiceDao serviceDao;
|
||||||
|
|
||||||
|
private ObjectMapper objectMapper =
|
||||||
|
new ObjectMapper();
|
||||||
|
//SerializerProvider.getJsonSerializer();
|
||||||
|
|
||||||
|
|
||||||
|
//FETCH BY DATASET PROFILE
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.GET, value = { "/datasetprofiles" }, produces="text/plain")
|
||||||
|
public @ResponseBody ResponseEntity<Object> listDMPs(){
|
||||||
|
try {
|
||||||
|
List<UUID> allIDs = datasetProfileDao.listAllIDs();
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(allIDs));
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.GET, value = { "/datasetprofiles/{id}" })
|
||||||
|
public @ResponseBody ResponseEntity<Object> getDatasetProfile(@PathVariable("id") String id) {
|
||||||
|
try {
|
||||||
|
DatasetProfile profile = datasetProfileDao.read(UUID.fromString(id));
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(profile));
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Erroneous input: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/create" }, consumes = "application/json", produces="application/json")
|
||||||
|
public @ResponseBody ResponseEntity<Object> createDatasetProfile(@RequestBody DatasetProfile datasetProfile) {
|
||||||
|
|
||||||
|
DatasetProfileRuleset datasetprofileruleset = datasetProfile.getRuleset();
|
||||||
|
DatasetProfileViewstyle datasetprofileviewstyle = datasetProfile.getViewstyle();
|
||||||
|
|
||||||
|
if(datasetprofileruleset != null) {
|
||||||
|
if(datasetprofileruleset.getId()==null)
|
||||||
|
datasetprofileruleset = datasetProfileRulesetDao.create(datasetprofileruleset);
|
||||||
|
else
|
||||||
|
datasetProfileRulesetDao.update(datasetprofileruleset);
|
||||||
|
datasetProfile.setRuleset(datasetprofileruleset);
|
||||||
|
}
|
||||||
|
if(datasetprofileviewstyle != null) {
|
||||||
|
if(datasetprofileviewstyle.getId()==null)
|
||||||
|
datasetprofileviewstyle = datasetProfileViewstyleDao.create(datasetprofileviewstyle);
|
||||||
|
else
|
||||||
|
datasetProfileViewstyleDao.update(datasetprofileviewstyle);
|
||||||
|
datasetProfile.setViewstyle(datasetprofileviewstyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
if(datasetProfile.getId()==null)
|
||||||
|
datasetProfile = datasetProfileDao.create(datasetProfile);
|
||||||
|
else
|
||||||
|
datasetProfileDao.update(datasetProfile);
|
||||||
|
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(datasetProfile));
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not create dataset profile!\"}");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/update" }, consumes = "application/json", produces="application/json")
|
||||||
|
public @ResponseBody ResponseEntity<Object> updateDatasetProfile(@RequestBody DatasetProfile datasetProfile) {
|
||||||
|
|
||||||
|
DatasetProfileRuleset datasetprofileruleset = datasetProfile.getRuleset();
|
||||||
|
DatasetProfileViewstyle datasetprofileviewstyle = datasetProfile.getViewstyle();
|
||||||
|
|
||||||
|
if(datasetprofileruleset != null) {
|
||||||
|
if(datasetprofileruleset.getId()==null)
|
||||||
|
datasetProfileRulesetDao.create(datasetprofileruleset);
|
||||||
|
else
|
||||||
|
datasetProfileRulesetDao.update(datasetprofileruleset);
|
||||||
|
}
|
||||||
|
if(datasetprofileviewstyle != null) {
|
||||||
|
if(datasetprofileviewstyle.getId()==null)
|
||||||
|
datasetProfileViewstyleDao.create(datasetprofileviewstyle);
|
||||||
|
else
|
||||||
|
datasetProfileViewstyleDao.update(datasetprofileviewstyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
if(datasetProfile.getId()==null)
|
||||||
|
datasetProfile = datasetProfileDao.create(datasetProfile);
|
||||||
|
else
|
||||||
|
datasetProfile = datasetProfileDao.update(datasetProfile);
|
||||||
|
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(datasetProfile));
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not create dataset profile!\"}");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// //@Transactional
|
||||||
|
// @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/set" }, consumes = "application/json", produces="application/json")
|
||||||
|
// public @ResponseBody ResponseEntity<Object> setDatasetProfile(@RequestBody DatasetProfile datasetProfile) {
|
||||||
|
//
|
||||||
|
// System.out.println("inside setDatasetProfile");
|
||||||
|
// try {
|
||||||
|
// System.out.println(objectMapper.writeValueAsString(datasetProfile));
|
||||||
|
// } catch (JsonProcessingException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if(datasetProfile.getRuleset()!=null && datasetProfile.getRuleset().getId()!=null){
|
||||||
|
// DatasetProfileRuleset dpr = datasetProfile.getRuleset();
|
||||||
|
// datasetProfileRulesetDao.update(dpr);
|
||||||
|
// DatasetProfileRuleset n = new DatasetProfileRuleset();
|
||||||
|
// n.setId(dpr.getId());
|
||||||
|
// datasetProfile.setRuleset(n);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if(datasetProfile.getViewstyle()!=null && datasetProfile.getViewstyle().getId()!=null){
|
||||||
|
// DatasetProfileViewstyle dpv = datasetProfile.getViewstyle();
|
||||||
|
// datasetProfileViewstyleDao.update(dpv);
|
||||||
|
// DatasetProfileViewstyle n = new DatasetProfileViewstyle();
|
||||||
|
// n.setId(dpv.getId());
|
||||||
|
// datasetProfile.setViewstyle(n);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// datasetProfile.setDataset(null);
|
||||||
|
//
|
||||||
|
// DatasetProfile createdDatasetProfile = datasetProfileDao.update(datasetProfile);
|
||||||
|
// try {
|
||||||
|
// return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(createdDatasetProfile));
|
||||||
|
// } catch (JsonProcessingException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not set dataset profile!\"}");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// @RequestMapping(method = RequestMethod.POST, value = { "/createEmptyDatasetProfile" })
|
||||||
|
// public @ResponseBody ResponseEntity<Object> createEmptyDatasetProfile(@RequestParam("datasetID") String datasetID) {
|
||||||
|
//
|
||||||
|
// DatasetProfileRuleset dpr = new DatasetProfileRuleset();
|
||||||
|
// dpr.setLabel("");
|
||||||
|
// dpr.setDefinition("");
|
||||||
|
// dpr.setId(datasetProfileRulesetDao.create(dpr).getId());
|
||||||
|
//
|
||||||
|
// DatasetProfileViewstyle dpv = new DatasetProfileViewstyle();
|
||||||
|
// dpv.setLabel("");
|
||||||
|
// dpv.setDefinition("");
|
||||||
|
// dpv.setId(datasetProfileViewstyleDao.create(dpv).getId());
|
||||||
|
//
|
||||||
|
// DatasetProfile datasetProfile = new DatasetProfile();
|
||||||
|
// datasetProfile.setLabel("");
|
||||||
|
// datasetProfile.setDefinition("");
|
||||||
|
// datasetProfile.setRuleset(dpr);
|
||||||
|
// datasetProfile.setViewstyle(dpv);
|
||||||
|
//
|
||||||
|
// Dataset ds = new Dataset();
|
||||||
|
// ds.setId(UUID.fromString(datasetID));
|
||||||
|
// Set<Dataset> datasets = new HashSet<Dataset>();
|
||||||
|
// datasets.add(ds);
|
||||||
|
// datasetProfile.setDataset(datasets);
|
||||||
|
//
|
||||||
|
// try {
|
||||||
|
// datasetProfile = datasetProfileDao.create(datasetProfile);
|
||||||
|
// return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(datasetProfile));
|
||||||
|
// }
|
||||||
|
// catch(Exception e) {
|
||||||
|
// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("FAILED: reason: "+e.getMessage());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -77,7 +77,8 @@ public class Datasets {
|
||||||
|
|
||||||
// FETCH BY DATASET(S)
|
// FETCH BY DATASET(S)
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/dataset" })
|
|
||||||
|
@RequestMapping(method = RequestMethod.GET, value = { "/datasets" })
|
||||||
public @ResponseBody ResponseEntity<Object> listDatasets(){
|
public @ResponseBody ResponseEntity<Object> listDatasets(){
|
||||||
try {
|
try {
|
||||||
List<UUID> allIDs = datasetDao.listAllIDs();
|
List<UUID> allIDs = datasetDao.listAllIDs();
|
||||||
|
@ -89,7 +90,7 @@ public class Datasets {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/dataset/{id}" })
|
@RequestMapping(method = RequestMethod.GET, value = { "/datasets/{id}" })
|
||||||
public @ResponseBody ResponseEntity<Object> getDataset(@PathVariable("id") String id) {
|
public @ResponseBody ResponseEntity<Object> getDataset(@PathVariable("id") String id) {
|
||||||
try {
|
try {
|
||||||
Dataset ds = datasetDao.read(UUID.fromString(id));
|
Dataset ds = datasetDao.read(UUID.fromString(id));
|
||||||
|
@ -104,7 +105,7 @@ public class Datasets {
|
||||||
/**
|
/**
|
||||||
* This should be called on extreme cases. It's computationally intensive
|
* This should be called on extreme cases. It's computationally intensive
|
||||||
*/
|
*/
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/getAllDatasets" })
|
@RequestMapping(method = RequestMethod.GET, value = { "/dataset/getAll" })
|
||||||
public @ResponseBody ResponseEntity<Object> getAllDatasets(){
|
public @ResponseBody ResponseEntity<Object> getAllDatasets(){
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -128,31 +129,32 @@ public class Datasets {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/setDataset" }, consumes = "application/json")
|
@RequestMapping(method = RequestMethod.POST, value = { "/dataset/create" }, consumes = "application/json")
|
||||||
public @ResponseBody ResponseEntity<Object> setDataset(@RequestBody Dataset dataset) {
|
public @ResponseBody ResponseEntity<Object> createDataset(@RequestBody Dataset dataset) {
|
||||||
|
|
||||||
String reason = "";
|
dataset.setId(null);
|
||||||
Dataset storedDataset = null;
|
|
||||||
//try first to create
|
|
||||||
try {
|
try {
|
||||||
storedDataset = datasetDao.create(dataset);
|
dataset = datasetDao.create(dataset);
|
||||||
RestResponse rr = new RestResponse("Created dataset with id: "+storedDataset.toString(), storedDataset.getId().toString());
|
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(dataset));
|
||||||
return ResponseEntity.status(HttpStatus.CREATED).body(rr.toString());
|
|
||||||
}
|
}
|
||||||
catch(Exception e) {
|
catch(Exception e) {
|
||||||
e.printStackTrace();
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Could not create or update Dataset! Reason: " + e.getMessage());
|
||||||
reason += e.getMessage();
|
}
|
||||||
//try updating
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/dataset/update" }, consumes = "application/json")
|
||||||
|
public @ResponseBody ResponseEntity<Object> updateDataset(@RequestBody Dataset dataset) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
storedDataset = datasetDao.update(dataset);
|
dataset = datasetDao.update(dataset);
|
||||||
RestResponse rr = new RestResponse("Updated dataset with id: "+storedDataset.toString(), storedDataset.getId().toString());
|
RestResponse rr = new RestResponse("Updated dataset with id: "+dataset.toString(), dataset.getId().toString());
|
||||||
return ResponseEntity.status(HttpStatus.CREATED).body(rr.toString());
|
return ResponseEntity.status(HttpStatus.CREATED).body(rr.toString());
|
||||||
}
|
}
|
||||||
catch(Exception ex) {
|
catch(Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
reason += (System.lineSeparator()+e.getMessage());
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Could not create or update Dataset! Reason: " + ex.getMessage());
|
||||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Could not create or update Dataset! Reason: " + reason);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -160,10 +162,7 @@ public class Datasets {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/dataset/delete" }, consumes = "application/json")
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/deleteDataset" }, consumes = "application/json")
|
|
||||||
public @ResponseBody ResponseEntity<Object> deleteDataset(@RequestBody Dataset dataset) {
|
public @ResponseBody ResponseEntity<Object> deleteDataset(@RequestBody Dataset dataset) {
|
||||||
|
|
||||||
//if we want to make sure it won't cascade up to other (child) components, we can just unhook them by setting them = new ones
|
//if we want to make sure it won't cascade up to other (child) components, we can just unhook them by setting them = new ones
|
||||||
|
@ -179,7 +178,7 @@ public class Datasets {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/assignDMPToDataset" })
|
@RequestMapping(method = RequestMethod.GET, value = { "/dataset/assignDMPToDataset" })
|
||||||
public @ResponseBody ResponseEntity<Object> assignDMPToDataset(@RequestParam("datasetID") String datasetID, @RequestParam("dmpID") String dmpID) {
|
public @ResponseBody ResponseEntity<Object> assignDMPToDataset(@RequestParam("datasetID") String datasetID, @RequestParam("dmpID") String dmpID) {
|
||||||
|
|
||||||
Dataset dataset = null;
|
Dataset dataset = null;
|
||||||
|
@ -199,6 +198,28 @@ public class Datasets {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.GET, value = { "/dataset/assignProfileToDataset" })
|
||||||
|
public @ResponseBody ResponseEntity<Object> assignProfileToDataset(@RequestParam("datasetID") String datasetID, @RequestParam("profileID") String profileID) {
|
||||||
|
|
||||||
|
Dataset dataset = null;
|
||||||
|
try {
|
||||||
|
dataset = datasetDao.read(UUID.fromString(datasetID));
|
||||||
|
if(dataset==null || dataset.getId()==null) throw new Exception("Could not find a Dataset by this id");
|
||||||
|
DatasetProfile profile = new DatasetProfile();
|
||||||
|
profile.setId(UUID.fromString(profileID));
|
||||||
|
dataset.setProfile(profile);
|
||||||
|
datasetDao.update(dataset);
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).build();
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/createEmptyDataset" })
|
@RequestMapping(method = RequestMethod.GET, value = { "/createEmptyDataset" })
|
||||||
public @ResponseBody ResponseEntity<Object> createEmptyDataset() {
|
public @ResponseBody ResponseEntity<Object> createEmptyDataset() {
|
||||||
|
@ -223,99 +244,6 @@ public class Datasets {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
//FETCH BY DATASET PROFILE
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = { "/datasetprofile/{id}" })
|
|
||||||
public @ResponseBody ResponseEntity<Object> getDatasetProfile(@PathVariable("id") String id) {
|
|
||||||
try {
|
|
||||||
DatasetProfile profile = datasetProfileDao.read(UUID.fromString(id));
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(profile));
|
|
||||||
}
|
|
||||||
catch(Exception ex) {
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Erroneous input: "+ex.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//@Transactional
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/set" }, consumes = "application/json", produces="application/json")
|
|
||||||
public @ResponseBody ResponseEntity<Object> setDatasetProfile(@RequestBody DatasetProfile datasetProfile) {
|
|
||||||
|
|
||||||
System.out.println("inside setDatasetProfile");
|
|
||||||
try {
|
|
||||||
System.out.println(objectMapper.writeValueAsString(datasetProfile));
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(datasetProfile.getRuleset()!=null && datasetProfile.getRuleset().getId()!=null){
|
|
||||||
DatasetProfileRuleset dpr = datasetProfile.getRuleset();
|
|
||||||
datasetProfileRulesetDao.update(dpr);
|
|
||||||
DatasetProfileRuleset n = new DatasetProfileRuleset();
|
|
||||||
n.setId(dpr.getId());
|
|
||||||
datasetProfile.setRuleset(n);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(datasetProfile.getViewstyle()!=null && datasetProfile.getViewstyle().getId()!=null){
|
|
||||||
DatasetProfileViewstyle dpv = datasetProfile.getViewstyle();
|
|
||||||
datasetProfileViewstyleDao.update(dpv);
|
|
||||||
DatasetProfileViewstyle n = new DatasetProfileViewstyle();
|
|
||||||
n.setId(dpv.getId());
|
|
||||||
datasetProfile.setViewstyle(n);
|
|
||||||
}
|
|
||||||
|
|
||||||
datasetProfile.setDataset(null);
|
|
||||||
|
|
||||||
DatasetProfile createdDatasetProfile = datasetProfileDao.update(datasetProfile);
|
|
||||||
try {
|
|
||||||
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(createdDatasetProfile));
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not set dataset profile!\"}");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = { "/createEmptyDatasetProfile" })
|
|
||||||
public @ResponseBody ResponseEntity<Object> createEmptyDatasetProfile(@RequestParam("datasetID") String datasetID) {
|
|
||||||
|
|
||||||
DatasetProfileRuleset dpr = new DatasetProfileRuleset();
|
|
||||||
dpr.setLabel("");
|
|
||||||
dpr.setDefinition("");
|
|
||||||
dpr.setId(datasetProfileRulesetDao.create(dpr).getId());
|
|
||||||
|
|
||||||
DatasetProfileViewstyle dpv = new DatasetProfileViewstyle();
|
|
||||||
dpv.setLabel("");
|
|
||||||
dpv.setDefinition("");
|
|
||||||
dpv.setId(datasetProfileViewstyleDao.create(dpv).getId());
|
|
||||||
|
|
||||||
DatasetProfile datasetProfile = new DatasetProfile();
|
|
||||||
datasetProfile.setLabel("");
|
|
||||||
datasetProfile.setDefinition("");
|
|
||||||
datasetProfile.setRuleset(dpr);
|
|
||||||
datasetProfile.setViewstyle(dpv);
|
|
||||||
|
|
||||||
Dataset ds = new Dataset();
|
|
||||||
ds.setId(UUID.fromString(datasetID));
|
|
||||||
Set<Dataset> datasets = new HashSet<Dataset>();
|
|
||||||
datasets.add(ds);
|
|
||||||
datasetProfile.setDataset(datasets);
|
|
||||||
|
|
||||||
try {
|
|
||||||
datasetProfile = datasetProfileDao.create(datasetProfile);
|
|
||||||
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(datasetProfile));
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("FAILED: reason: "+e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package rest.entities;
|
package rest.entities;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -11,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
@ -39,6 +42,7 @@ import dao.entities.ProjectDao;
|
||||||
import dao.entities.RegistryDao;
|
import dao.entities.RegistryDao;
|
||||||
import dao.entities.ResearcherDao;
|
import dao.entities.ResearcherDao;
|
||||||
import dao.entities.ServiceDao;
|
import dao.entities.ServiceDao;
|
||||||
|
import dao.entities.UserInfoDao;
|
||||||
import entities.DMP;
|
import entities.DMP;
|
||||||
import entities.DMPProfile;
|
import entities.DMPProfile;
|
||||||
import entities.DataRepository;
|
import entities.DataRepository;
|
||||||
|
@ -50,6 +54,7 @@ import entities.Project;
|
||||||
import entities.Registry;
|
import entities.Registry;
|
||||||
import entities.Researcher;
|
import entities.Researcher;
|
||||||
import entities.Service;
|
import entities.Service;
|
||||||
|
import entities.UserInfo;
|
||||||
import entities.responses.IDLabelPair;
|
import entities.responses.IDLabelPair;
|
||||||
import helpers.SerializerProvider;
|
import helpers.SerializerProvider;
|
||||||
import helpers.Transformers;
|
import helpers.Transformers;
|
||||||
|
@ -72,6 +77,7 @@ public class Projects {
|
||||||
@Autowired private RegistryDao registryDao;
|
@Autowired private RegistryDao registryDao;
|
||||||
@Autowired private ResearcherDao researcherDao;
|
@Autowired private ResearcherDao researcherDao;
|
||||||
@Autowired private ServiceDao serviceDao;
|
@Autowired private ServiceDao serviceDao;
|
||||||
|
@Autowired private UserInfoDao userInfoDao;
|
||||||
|
|
||||||
|
|
||||||
private ObjectMapper objectMapper = SerializerProvider.getJsonSerializer();
|
private ObjectMapper objectMapper = SerializerProvider.getJsonSerializer();
|
||||||
|
@ -168,6 +174,102 @@ public class Projects {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/project/getdmps" }, consumes = "application/json", produces="application/json")
|
||||||
|
public @ResponseBody ResponseEntity<Object> getProjectDmps(@RequestBody Project project) {
|
||||||
|
try {
|
||||||
|
Set<DMP> dmps = projectDao.read(project.getId()).getDmps();
|
||||||
|
return ResponseEntity.status(HttpStatus.CREATED).body(objectMapper.writeValueAsString(dmps));
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not create Project!\"}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
//// USER - RELATED ACTIONS ////
|
||||||
|
////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(method = RequestMethod.GET, value = { "/project/getofuser" }, produces="text/plain")
|
||||||
|
public @ResponseBody ResponseEntity<Object> getProjectsOfUser(){
|
||||||
|
|
||||||
|
String userID = null;
|
||||||
|
try {
|
||||||
|
userID = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
|
||||||
|
} catch(NullPointerException ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("You have not logged in. You shouldn't be here");
|
||||||
|
}
|
||||||
|
|
||||||
|
UserInfo userInfo = userInfoDao.read(UUID.fromString(userID));
|
||||||
|
|
||||||
|
if(userInfo==null) //this should normally never happer
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There's no such a user on the system. You shouldn't be here");
|
||||||
|
|
||||||
|
try {
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(userInfo.getProjects()));
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/project/createofuser" }, produces="text/plain")
|
||||||
|
public @ResponseBody ResponseEntity<Object> createProjectOfUser(@RequestBody Project project){
|
||||||
|
|
||||||
|
|
||||||
|
String userID = null;
|
||||||
|
try {
|
||||||
|
userID = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
|
||||||
|
} catch(NullPointerException ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("You have not logged in. You shouldn't be here");
|
||||||
|
}
|
||||||
|
|
||||||
|
UserInfo userInfo = userInfoDao.read(UUID.fromString(userID));
|
||||||
|
|
||||||
|
|
||||||
|
if(userInfo==null) //this should normally never happer
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There's no such a user on the system. You shouldn't be here");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
project.setId(null);
|
||||||
|
|
||||||
|
Project newproj = projectDao.create(project);
|
||||||
|
|
||||||
|
Set<Project> userProjects = userInfo.getProjects();
|
||||||
|
if(userProjects==null)
|
||||||
|
userProjects = new HashSet<Project>();
|
||||||
|
userProjects.add(newproj);
|
||||||
|
|
||||||
|
userInfo.setProjects(userProjects);
|
||||||
|
|
||||||
|
userInfo = userInfoDao.update(userInfo);
|
||||||
|
|
||||||
|
return ResponseEntity.status(HttpStatus.OK).body(objectMapper.writeValueAsString(userInfo));
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@RequestMapping(method = RequestMethod.POST, value = { "/project/updateofuser" }, produces="text/plain")
|
||||||
|
public @ResponseBody ResponseEntity<Object> updateProjectOfUser(@RequestBody Project project){
|
||||||
|
|
||||||
|
if(project.getId()==null)
|
||||||
|
return ResponseEntity.status(HttpStatus.NOT_MODIFIED).body("Cannot update, id was null");
|
||||||
|
return setProject(project);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,5 +79,7 @@ public class Users {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,22 +67,22 @@
|
||||||
|
|
||||||
<context-param>
|
<context-param>
|
||||||
<param-name>contextConfigLocation</param-name>
|
<param-name>contextConfigLocation</param-name>
|
||||||
<!-- <param-value>/WEB-INF/applicationContext.xml,/WEB-INF/spring-security.xml</param-value> -->
|
<param-value>/WEB-INF/applicationContext.xml,/WEB-INF/spring-security.xml</param-value>
|
||||||
<param-value>/WEB-INF/applicationContext.xml</param-value>
|
<!-- <param-value>/WEB-INF/applicationContext.xml</param-value> -->
|
||||||
</context-param>
|
</context-param>
|
||||||
<session-config>
|
<session-config>
|
||||||
<session-timeout>30</session-timeout>
|
<session-timeout>30</session-timeout>
|
||||||
</session-config>
|
</session-config>
|
||||||
|
|
||||||
<!-- THIS FILTER IS FOR SPRING SECURITY -->
|
<!-- THIS FILTER IS FOR SPRING SECURITY -->
|
||||||
<!-- <filter> -->
|
<filter>
|
||||||
<!-- <filter-name>springSecurityFilterChain</filter-name> -->
|
<filter-name>springSecurityFilterChain</filter-name>
|
||||||
<!-- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> -->
|
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
|
||||||
<!-- </filter> -->
|
</filter>
|
||||||
<!-- <filter-mapping> -->
|
<filter-mapping>
|
||||||
<!-- <filter-name>springSecurityFilterChain</filter-name> -->
|
<filter-name>springSecurityFilterChain</filter-name>
|
||||||
<!-- <url-pattern>/rest/*</url-pattern> -->
|
<url-pattern>/rest/*</url-pattern>
|
||||||
<!-- </filter-mapping> -->
|
</filter-mapping>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,127 @@
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
|
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||||
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||||
|
import org.springframework.security.core.Authentication;
|
||||||
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import dao.entities.DMPDao;
|
||||||
|
import dao.entities.DMPProfileDao;
|
||||||
|
import dao.entities.DataRepositoryDao;
|
||||||
|
import dao.entities.DatasetDao;
|
||||||
|
import dao.entities.DatasetProfileDao;
|
||||||
|
import dao.entities.DatasetProfileRulesetDao;
|
||||||
|
import dao.entities.DatasetProfileViewstyleDao;
|
||||||
|
import dao.entities.OrganisationDao;
|
||||||
|
import dao.entities.ProjectDao;
|
||||||
|
import dao.entities.RegistryDao;
|
||||||
|
import dao.entities.ResearcherDao;
|
||||||
|
import dao.entities.ServiceDao;
|
||||||
|
import dao.entities.UserInfoDao;
|
||||||
|
import entities.DatasetProfile;
|
||||||
|
import entities.DatasetProfileRuleset;
|
||||||
|
import entities.DatasetProfileViewstyle;
|
||||||
|
import helpers.SerializerProvider;
|
||||||
|
import rest.entities.DMPs;
|
||||||
|
import rest.entities.DatasetProfiles;
|
||||||
|
import rest.entities.Datasets;
|
||||||
|
import rest.entities.Projects;
|
||||||
|
|
||||||
|
@ComponentScan(basePackages = "dao, entities, controller, login, proxy, rest")
|
||||||
|
public class TestRest {
|
||||||
|
|
||||||
|
@Autowired private DataRepositoryDao dataRepositoryDao;
|
||||||
|
@Autowired private DatasetDao datasetDao;
|
||||||
|
@Autowired private DatasetProfileDao datasetProfileDao;
|
||||||
|
@Autowired private DatasetProfileRulesetDao datasetProfileRulesetDao;
|
||||||
|
@Autowired private DatasetProfileViewstyleDao datasetProfileViewstyleDao;
|
||||||
|
@Autowired private DMPDao dMPDao;
|
||||||
|
@Autowired private DMPProfileDao dMPProfileDao;
|
||||||
|
@Autowired private OrganisationDao organisationDao;
|
||||||
|
@Autowired private ProjectDao projectDao;
|
||||||
|
@Autowired private RegistryDao registryDao;
|
||||||
|
@Autowired private ResearcherDao researcherDao;
|
||||||
|
@Autowired private ServiceDao serviceDao;
|
||||||
|
@Autowired private UserInfoDao userInfoDao;
|
||||||
|
|
||||||
|
private static ObjectMapper objectMapper = SerializerProvider.getJsonSerializer();
|
||||||
|
|
||||||
|
private static String userID = "0f51f686-a2ce-47c1-9433-00736787aa88";
|
||||||
|
|
||||||
|
private ApplicationContext context;
|
||||||
|
|
||||||
|
private Projects projectsService;
|
||||||
|
private Datasets datasetsService;
|
||||||
|
private DatasetProfiles datasetProfilesService;
|
||||||
|
private DMPs dmpsService;
|
||||||
|
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setupAll() {
|
||||||
|
Authentication dummy = new UsernamePasswordAuthenticationToken(userID, "test-creds", new ArrayList<>());
|
||||||
|
SecurityContextHolder.getContext().setAuthentication(dummy);
|
||||||
|
|
||||||
|
context = new ClassPathXmlApplicationContext("applicationContextTEST.xml");
|
||||||
|
|
||||||
|
projectsService = context.getBean(Projects.class);
|
||||||
|
datasetsService = context.getBean(Datasets.class);
|
||||||
|
datasetProfilesService = context.getBean(DatasetProfiles.class);
|
||||||
|
dmpsService = context.getBean(DMPs.class);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDatasetProfile() {
|
||||||
|
// DatasetProfile datasetProfile = new DatasetProfile();
|
||||||
|
// datasetProfile.setLabel("Sample-Dataset-Profile");
|
||||||
|
// datasetProfile.setDefinition("Sample-Dataset-Profile definition");
|
||||||
|
//
|
||||||
|
// DatasetProfileRuleset dpr = new DatasetProfileRuleset();
|
||||||
|
// dpr.setLabel("Sample-Dataset-Profile ruleset");
|
||||||
|
// dpr.setDefinition("dpr definition");
|
||||||
|
// datasetProfile.setRuleset(dpr);
|
||||||
|
//
|
||||||
|
// DatasetProfileViewstyle dpv = new DatasetProfileViewstyle();
|
||||||
|
// dpv.setLabel("Sample-Dataset-Profile viewstyle");
|
||||||
|
// dpv.setDefinition("dpv definition");
|
||||||
|
// datasetProfile.setViewstyle(dpv);
|
||||||
|
|
||||||
|
|
||||||
|
// String profJSON = (String)datasetProfilesService.createDatasetProfile(datasetProfile).getBody();
|
||||||
|
// DatasetProfile prof = null;
|
||||||
|
try {
|
||||||
|
// prof = objectMapper.readValue(profJSON, DatasetProfile.class);
|
||||||
|
// assertNotNull(prof.getId());
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
}
|
||||||
|
// assertNotNull(prof);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testProject() {
|
||||||
|
|
||||||
|
System.out.println(projectsService.listProjects().getBody());
|
||||||
|
System.out.println(dmpsService.listDMPs().getBody());
|
||||||
|
|
||||||
|
assertEquals("aaa", "aaa");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,118 @@
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
|
||||||
|
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
|
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||||
|
http://www.springframework.org/schema/tx
|
||||||
|
http://www.springframework.org/schema/tx/spring-tx.xsd
|
||||||
|
http://www.springframework.org/schema/context
|
||||||
|
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||||
|
|
||||||
|
|
||||||
|
<context:property-placeholder location="classpath*:**/dmpTEST.properties" />
|
||||||
|
|
||||||
|
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
|
||||||
|
|
||||||
|
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
|
||||||
|
|
||||||
|
<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
|
||||||
|
|
||||||
|
<!-- <bean id="remoteFileRepositoryHostname" class="java.lang.String" /> -->
|
||||||
|
|
||||||
|
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||||
|
<property name="entityManagerFactory" ref="emf" />
|
||||||
|
<property name="jpaDialect" ref="jpaDialect" />
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
|
<bean id="tokenSessionManager" class="security.TokenSessionManager" factory-method="getInstance" />
|
||||||
|
|
||||||
|
<bean id="googleTokenValidator" class="security.validators.GoogleTokenValidator" />
|
||||||
|
<bean id="nativeTokenValidator" class="security.validators.NativeTokenValidator" />
|
||||||
|
|
||||||
|
|
||||||
|
<bean id="proxy" class="proxy.Proxy">
|
||||||
|
<constructor-arg type = "String" value = "${proxy.allowed.host}"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="springApplicationContext" class="dao.SpringJpaDaoFactory" />
|
||||||
|
|
||||||
|
<bean id="databaseColumnType" class="typedefinition.PostgreSQLDatabaseColumnType" />
|
||||||
|
|
||||||
|
<bean id="tokenAuthenticationFilter" class="security.TokenAuthenticationFilter" />
|
||||||
|
|
||||||
|
<bean id="customAuthenticationProvider" class="security.CustomAuthenticationProvider" />
|
||||||
|
|
||||||
|
<bean id="emf" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
|
||||||
|
<property name="persistenceUnitName" value="DMPBackendPersistence" />
|
||||||
|
<property name="jpaProperties">
|
||||||
|
<props>
|
||||||
|
<prop key="javax.persistence.jdbc.driver">${persistence.jdbc.driver}</prop>
|
||||||
|
<prop key="javax.persistence.jdbc.url">${persistence.jdbc.url}</prop>
|
||||||
|
<prop key="hibernate.connection.username">${persistence.dbusername}</prop>
|
||||||
|
<prop key="hibernate.connection.password">${persistence.dbpassword}</prop>
|
||||||
|
<prop key="hibernate.show_sql">${persistence.hibernate.show_sql}</prop>
|
||||||
|
<prop key="hibernate.hbm2ddl.auto">${persistence.hibernate.hbm2dll}</prop>
|
||||||
|
<prop key="hibernate.dialect">${persistence.hibernate.dialect}</prop>
|
||||||
|
|
||||||
|
<prop key="hibernate.enable_lazy_load_no_trans">true</prop> <!-- USE WITH CAUTION -->
|
||||||
|
|
||||||
|
<prop key="hibernate.jdbc.batch_size">${persistence.hibernate.jdbc.batch_size}</prop>
|
||||||
|
<prop key="hibernate.order_inserts">${persistence.hibernate.order_inserts}</prop>
|
||||||
|
<prop key="hibernate.order_updates">${persistence.hibernate.order_updates}</prop>
|
||||||
|
<prop key="hibernate.jdbc.batch_versioned_data">${persistence.hibernate.batch_versioned_data}</prop>
|
||||||
|
<prop key="hibernate.connection.handling_mode">${persistence.hibernate.jdbc.batch_versioned_data}</prop>
|
||||||
|
<prop key="hibernate.connection.release_mode">on_close</prop>
|
||||||
|
|
||||||
|
<prop key="hibernate.connection.provider_class">${persistence.hibernate.connectionpool.provider_class}</prop>
|
||||||
|
<prop key="hibernate.c3p0.min_size">${persistence.hibernate.connectionpool.c3p0.min_size}</prop>
|
||||||
|
<prop key="hibernate.c3p0.max_size">${persistence.hibernate.connectionpool.c3p0.max_size}</prop>
|
||||||
|
|
||||||
|
<prop key="hibernate.c3p0.timeout">0</prop>
|
||||||
|
<!-- <prop key="hibernate.c3p0.timeout">${persistence.hibernate.connectionpool.c3p0.timeout}</prop> -->
|
||||||
|
|
||||||
|
<prop key="hibernate.c3p0.max_statements">${persistence.hibernate.connectionpool.c3p0.max_statements}</prop>
|
||||||
|
<prop key="hibernate.c3p0.acquire_retry_attempts">${persistence.hibernate.connectionpool.c3p0.acquire_retry_attempts}</prop>
|
||||||
|
<prop key="hibernate.c3p0.acquire_retry_delay">${persistence.hibernate.connectionpool.c3p0.acquire_retry_delay}</prop>
|
||||||
|
<prop key="hibernate.c3p0.idle_test_period">${persistence.hibernate.connectionpool.c3p0.idle_test_period}</prop>
|
||||||
|
<prop key="hibernate.c3p0.break_after_acquire_failure">${persistence.hibernate.connectionpool.c3p0.break_after_acquire_failure}</prop>
|
||||||
|
<prop key="hibernate.c3p0.idle_connection_test_period">${persistence.hibernate.connectionpool.c3p0.idle_connection_test_period}</prop>
|
||||||
|
<prop key="hibernate.c3p0.test_connection_on_checkin">${persistence.hibernate.connectionpool.c3p0.test_connection_on_checkin}</prop>
|
||||||
|
<prop key="hibernate.c3p0.test_connection_on_checkout">${persistence.hibernate.connectionpool.c3p0.test_connection_on_checkout}</prop>
|
||||||
|
<prop key="hibernate.c3p0.preferred_test_query">${persistence.hibernate.connectionpool.c3p0.preferred_test_query}</prop>
|
||||||
|
|
||||||
|
</props>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<bean id="organisationDao" class="dao.entities.OrganisationDaoImpl" />
|
||||||
|
<bean id="dataRepositoryDao" class="dao.entities.DataRepositoryDaoImpl" />
|
||||||
|
<bean id="datasetDao" class="dao.entities.DatasetDaoImpl" />
|
||||||
|
<bean id="datasetProfileDao" class="dao.entities.DatasetProfileDaoImpl" />
|
||||||
|
<bean id="datasetProfileRulesetDao" class="dao.entities.DatasetProfileRulesetDaoImpl" />
|
||||||
|
<bean id="datasetProfileViewstyleDao" class="dao.entities.DatasetProfileViewstyleDaoImpl" />
|
||||||
|
<bean id="datasetRegistryDao" class="dao.entities.DatasetRegistryDaoImpl" />
|
||||||
|
<bean id="datasetServiceDao" class="dao.entities.DatasetServiceDaoImpl" />
|
||||||
|
<bean id="dMPDao" class="dao.entities.DMPDaoImpl" />
|
||||||
|
<bean id="dMPProfileDao" class="dao.entities.DMPProfileDaoImpl" />
|
||||||
|
<bean id="dMPResearcherDao" class="dao.entities.DMPResearcherDaoImpl" />
|
||||||
|
<bean id="projectDao" class="dao.entities.ProjectDaoImpl" />
|
||||||
|
<bean id="registryDao" class="dao.entities.RegistryDaoImpl" />
|
||||||
|
<bean id="researcherDao" class="dao.entities.ResearcherDaoImpl" />
|
||||||
|
<bean id="serviceDao" class="dao.entities.ServiceDaoImpl" />
|
||||||
|
<bean id="userInfoDao" class="dao.entities.UserInfoDaoImpl" />
|
||||||
|
<bean id="userAuthDao" class="dao.entities.security.UserAuthDaoImpl" />
|
||||||
|
|
||||||
|
|
||||||
|
<context:annotation-config />
|
||||||
|
|
||||||
|
<context:component-scan base-package="entities" />
|
||||||
|
<context:component-scan base-package="dao" />
|
||||||
|
<context:component-scan base-package="core" />
|
||||||
|
<context:component-scan base-package="rest" />
|
||||||
|
<!-- <context:component-scan base-package="controller" /> -->
|
||||||
|
|
||||||
|
|
||||||
|
</beans>
|
|
@ -0,0 +1,48 @@
|
||||||
|
##########################Security##########################################
|
||||||
|
#security.portmapping.http = 7081
|
||||||
|
#security.portmapping.https = 7444
|
||||||
|
##########################/Security########################################
|
||||||
|
|
||||||
|
##########################Persistence##########################################
|
||||||
|
persistence.jdbc.driver = org.postgresql.Driver
|
||||||
|
persistence.jdbc.url = jdbc:postgresql://host:port/DB_NAME
|
||||||
|
persistence.dbusername = USE-a-VALID-USER
|
||||||
|
persistence.dbpassword = USE-a-VALID-PASS
|
||||||
|
##########################/Persistence##########################################
|
||||||
|
|
||||||
|
###################Allowed Proxy Service Host ############################
|
||||||
|
proxy.allowed.host = https://eestore.paas2.uninett.no
|
||||||
|
#######################################################
|
||||||
|
|
||||||
|
########################Persistence/Hibernate Generic#############################
|
||||||
|
persistence.hibernate.show_sql = false
|
||||||
|
persistence.hibernate.hbm2dll = validate
|
||||||
|
persistence.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
|
||||||
|
#persistence.hibernate.dialect = org.hibernate.spatial.dialect.postgis.PostgisDialect
|
||||||
|
########################Persistence/Hibernate Generic#############################
|
||||||
|
|
||||||
|
|
||||||
|
########################Persistence/Hibernate/Batch##############################
|
||||||
|
persistence.hibernate.jdbc.batch_size = 30
|
||||||
|
persistence.hibernate.order_inserts = true
|
||||||
|
persistence.hibernate.order_updates = true
|
||||||
|
persistence.hibernate.batch_versioned_data = true
|
||||||
|
persistence.hibernate.jdbc.batch_versioned_data = DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION
|
||||||
|
########################Persistence/Hibernate/Batch##############################
|
||||||
|
|
||||||
|
|
||||||
|
########################Persistence/Hibernate/Connection pool####################
|
||||||
|
persistence.hibernate.connectionpool.provider_class = org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider
|
||||||
|
persistence.hibernate.connectionpool.c3p0.min_size = 5
|
||||||
|
persistence.hibernate.connectionpool.c3p0.max_size = 100
|
||||||
|
persistence.hibernate.connectionpool.c3p0.timeout = 0
|
||||||
|
persistence.hibernate.connectionpool.c3p0.max_statements = 50
|
||||||
|
persistence.hibernate.connectionpool.c3p0.acquire_retry_attempts = 30
|
||||||
|
persistence.hibernate.connectionpool.c3p0.acquire_retry_delay = 1000
|
||||||
|
persistence.hibernate.connectionpool.c3p0.idle_test_period = 3000
|
||||||
|
persistence.hibernate.connectionpool.c3p0.break_after_acquire_failure = false
|
||||||
|
persistence.hibernate.connectionpool.c3p0.idle_connection_test_period = 3600
|
||||||
|
persistence.hibernate.connectionpool.c3p0.test_connection_on_checkin = true
|
||||||
|
persistence.hibernate.connectionpool.c3p0.test_connection_on_checkout = false
|
||||||
|
persistence.hibernate.connectionpool.c3p0.preferred_test_query = select 1
|
||||||
|
########################Persistence/Hibernate/Connection pool####################
|
Loading…
Reference in New Issue