diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/Dmp.java b/dmp-backend/core/src/main/java/eu/eudat/model/Dmp.java index 317d122a1..907a35d0b 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/Dmp.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/Dmp.java @@ -93,7 +93,7 @@ public class Dmp { private List dmpUsers; - public static final String _dmpUsers = "dmoUsers"; + public static final String _dmpUsers = "dmpUsers"; public UUID getId() { return id; diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpListingMapper.java b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpListingMapper.java index 225ede58d..3e828e8a3 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpListingMapper.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpListingMapper.java @@ -2,6 +2,7 @@ package eu.eudat.model.mapper.publicapi; import eu.eudat.model.Dmp; import eu.eudat.model.publicapi.listingmodels.DataManagementPlanPublicListingModel; +import eu.eudat.model.publicapi.user.UserInfoPublicModel; import org.springframework.stereotype.Component; import java.sql.Date; @@ -16,7 +17,7 @@ public class DmpToPublicApiDmpListingMapper { model.setVersion(dmp.getVersion()); model.setGroupId(dmp.getGroupId()); -// model.set + model.setUsers(dmp.getDmpUsers().stream().map(UserInfoPublicModel::fromDmpUser).toList()); model.setCreatedAt(Date.from(dmp.getCreatedAt())); model.setModifiedAt(Date.from(dmp.getUpdatedAt())); diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java index cf8c0af3f..3f3b16c6d 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java @@ -2,6 +2,7 @@ package eu.eudat.model.mapper.publicapi; import eu.eudat.model.Dmp; import eu.eudat.model.publicapi.overviewmodels.DataManagementPlanPublicModel; +import eu.eudat.model.publicapi.user.UserInfoPublicModel; import org.springframework.stereotype.Component; import java.sql.Date; @@ -17,7 +18,7 @@ public class DmpToPublicApiDmpMapper { model.setVersion(dmp.getVersion()); model.setGroupId(dmp.getGroupId()); - + model.setUsers(dmp.getDmpUsers().stream().map(UserInfoPublicModel::fromDmpUser).toList()); model.setCreatedAt(Date.from(dmp.getCreatedAt())); model.setModifiedAt(Date.from(dmp.getUpdatedAt())); diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DataManagementPlanPublicListingModel.java b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DataManagementPlanPublicListingModel.java index 66d23eb41..c347bd211 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DataManagementPlanPublicListingModel.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DataManagementPlanPublicListingModel.java @@ -1,8 +1,8 @@ package eu.eudat.model.publicapi.listingmodels; import eu.eudat.data.DmpEntity; -import eu.eudat.model.DmpUser; import eu.eudat.model.publicapi.researcher.ResearcherPublicModel; +import eu.eudat.model.publicapi.user.UserInfoPublicModel; import java.util.*; @@ -14,7 +14,7 @@ public class DataManagementPlanPublicListingModel { private Date modifiedAt; private int version; private UUID groupId; - private List users; + private List users; private List researchers; private Date finalizedAt; private Date publishedAt; @@ -68,10 +68,10 @@ public class DataManagementPlanPublicListingModel { this.groupId = groupId; } - public List getUsers() { + public List getUsers() { return users; } - public void setUsers(List users) { + public void setUsers(List users) { this.users = users; } diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DatasetPublicListingModel.java b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DatasetPublicListingModel.java index 33d53a75b..09fab7fa8 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DatasetPublicListingModel.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/listingmodels/DatasetPublicListingModel.java @@ -1,8 +1,8 @@ package eu.eudat.model.publicapi.listingmodels; import eu.eudat.data.DescriptionEntity; -import eu.eudat.model.DmpUser; import eu.eudat.model.publicapi.datasetprofile.DatasetProfilePublicModel; +import eu.eudat.model.publicapi.user.UserInfoPublicModel; import java.util.Date; import java.util.List; @@ -20,7 +20,7 @@ public class DatasetPublicListingModel { private Date finalizedAt; private Date dmpPublishedAt; private int version; - private List users; + private List users; public String getId() { return id; @@ -106,11 +106,11 @@ public class DatasetPublicListingModel { this.version = version; } - public List getUsers() { + public List getUsers() { return users; } - public void setUsers(List users) { + public void setUsers(List users) { this.users = users; } diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/overviewmodels/DataManagementPlanPublicModel.java b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/overviewmodels/DataManagementPlanPublicModel.java index a9efe897a..099a9b4a6 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/overviewmodels/DataManagementPlanPublicModel.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/overviewmodels/DataManagementPlanPublicModel.java @@ -1,12 +1,12 @@ package eu.eudat.model.publicapi.overviewmodels; import eu.eudat.data.DmpEntity; -import eu.eudat.model.DmpUser; import eu.eudat.model.publicapi.associatedprofile.AssociatedProfilePublicModel; import eu.eudat.model.publicapi.doi.DoiPublicModel; import eu.eudat.model.publicapi.grant.GrantPublicOverviewModel; import eu.eudat.model.publicapi.organisation.OrganizationPublicModel; import eu.eudat.model.publicapi.researcher.ResearcherPublicModel; +import eu.eudat.model.publicapi.user.UserInfoPublicModel; import java.util.Date; import java.util.List; @@ -26,7 +26,7 @@ public class DataManagementPlanPublicModel { private List datasets; private List associatedProfiles; private List researchers; - private List users; + private List users; private String description; private Date publishedAt; private List dois; @@ -116,10 +116,10 @@ public class DataManagementPlanPublicModel { this.associatedProfiles = associatedProfiles; } - public List getUsers() { + public List getUsers() { return users; } - public void setUsers(List users) { + public void setUsers(List users) { this.users = users; } diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/user/UserInfoPublicModel.java b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/user/UserInfoPublicModel.java new file mode 100644 index 000000000..dcab14dbc --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/user/UserInfoPublicModel.java @@ -0,0 +1,44 @@ +package eu.eudat.model.publicapi.user; + +import eu.eudat.model.DmpUser; + +import java.util.UUID; + +public class UserInfoPublicModel { + private UUID id; + private String name; + private int role; + + public UUID getId() { + return id; + } + public void setId(UUID id) { + this.id = id; + } + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + public int getRole() { + return role; + } + public void setRole(int role) { + this.role = role; + } + + public static UserInfoPublicModel fromDmpUser(DmpUser dmpUser) { + UserInfoPublicModel model = new UserInfoPublicModel(); + model.setId(dmpUser.getUser().getId()); + model.setName(dmpUser.getUser().getName()); + model.setRole(dmpUser.getRole().getValue()); + return model; + } + + public String getHint() { + return "UserInfoListingModel"; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/publicapi/PublicDmpsDocumentation.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/publicapi/PublicDmpsDocumentation.java index bd226cc96..c29a6e830 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/publicapi/PublicDmpsDocumentation.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/publicapi/PublicDmpsDocumentation.java @@ -1,12 +1,15 @@ package eu.eudat.controllers.publicapi; import eu.eudat.commons.enums.DmpAccessType; +import eu.eudat.commons.enums.IsActive; import eu.eudat.controllers.BaseController; import eu.eudat.controllers.publicapi.request.dmp.DataManagmentPlanPublicTableRequest; import eu.eudat.controllers.publicapi.response.DataTableData; import eu.eudat.data.DmpEntity; import eu.eudat.logic.services.ApiContext; import eu.eudat.model.Dmp; +import eu.eudat.model.DmpUser; +import eu.eudat.model.User; import eu.eudat.model.builder.DmpBuilder; import eu.eudat.model.mapper.publicapi.DmpToPublicApiDmpListingMapper; import eu.eudat.model.mapper.publicapi.DmpToPublicApiDmpMapper; @@ -88,12 +91,14 @@ public class PublicDmpsDocumentation extends BaseController { @RequestParam @Parameter(description = PublicApiStaticHelpers.Dmp.getPagedRequestParamDescription, example = "listing") String fieldsGroup ) throws Exception { DmpLookup lookup = getDmpLookup(fieldsGroup, dmpTableRequest); - DmpQuery query = lookup.enrich(this.queryFactory).accessTypes(DmpAccessType.Public); + DmpQuery query = lookup.enrich(this.queryFactory).accessTypes(DmpAccessType.Public).isActive(IsActive.Active); + long count = this.queryFactory.query(DmpQuery.class).accessTypes(DmpAccessType.Public).isActive(IsActive.Active).count(); List data = query.collectAs(lookup.getProject()); List models = this.builderFactory.builder(DmpBuilder.class).build(lookup.getProject(), data); DataTableData dataTableData = new DataTableData<>(); dataTableData.setData(models.stream().map(this.dmpToPublicApiDmpListingMapper::toPublicListingModel).toList()); + dataTableData.setTotalCount(count); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().status(ApiMessageCode.NO_MESSAGE).payload(dataTableData)); } @@ -108,6 +113,10 @@ public class PublicDmpsDocumentation extends BaseController { Dmp._description, Dmp._version, Dmp._groupId, + String.join(".", Dmp._dmpUsers, String.join(".", DmpUser._user, User._id)), + String.join(".", Dmp._dmpUsers, String.join(".", DmpUser._user, User._name)), + String.join(".", Dmp._dmpUsers, DmpUser._role), + Dmp._dmpReferences, Dmp._createdAt, Dmp._updatedAt, Dmp._finalizedAt @@ -145,12 +154,15 @@ public class PublicDmpsDocumentation extends BaseController { Dmp._description, Dmp._version, Dmp._groupId, + String.join(".", Dmp._dmpUsers, String.join(".", DmpUser._user, User._id)), + String.join(".", Dmp._dmpUsers, String.join(".", DmpUser._user, User._name)), + String.join(".", Dmp._dmpUsers, DmpUser._role), Dmp._createdAt, Dmp._updatedAt, Dmp._finalizedAt ); fieldSet.setFields(fields); - DmpQuery query = this.queryFactory.query(DmpQuery.class).ids(UUID.fromString(id)).accessTypes(DmpAccessType.Public); + DmpQuery query = this.queryFactory.query(DmpQuery.class).ids(UUID.fromString(id)).accessTypes(DmpAccessType.Public).isActive(IsActive.Active); Dmp model = this.builderFactory.builder(DmpBuilder.class).build(fieldSet, query.firstAs(fieldSet)); if (model == null) throw new MyNotFoundException(messageSource.getMessage("General_ItemNotFound", new Object[]{id, Dmp.class.getSimpleName()}, LocaleContextHolder.getLocale()));