From 20f618a5d7cf35e17a821a1b5dc05599e6e1ffc9 Mon Sep 17 00:00:00 2001 From: Aldo Mihasi Date: Tue, 18 Oct 2022 09:39:46 +0300 Subject: [PATCH 1/2] fix request body examples in publicapi --- dmp-backend/data/pom.xml | 5 +++++ .../java/eu/eudat/data/dao/criteria/Criteria.java | 4 ++-- .../java/eu/eudat/data/query/definition/Query.java | 2 ++ .../eu/eudat/data/query/definition/TableQuery.java | 4 ++++ .../query/definition/helpers/ColumnOrderings.java | 3 +++ .../query/definition/helpers/SelectionFields.java | 3 +++ .../criteria/dataset/DatasetPublicCriteria.java | 11 +++++++++++ .../dmp/DataManagementPlanPublicCriteria.java | 10 ++++++++++ 8 files changed, 40 insertions(+), 2 deletions(-) diff --git a/dmp-backend/data/pom.xml b/dmp-backend/data/pom.xml index 77eb322aa..6c162868f 100644 --- a/dmp-backend/data/pom.xml +++ b/dmp-backend/data/pom.xml @@ -25,5 +25,10 @@ elastic 1.0.0-SNAPSHOT + + io.swagger + swagger-annotations + 1.5.20 + \ No newline at end of file diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/Criteria.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/Criteria.java index 93d373c2a..42b693035 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/Criteria.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/criteria/Criteria.java @@ -1,9 +1,9 @@ package eu.eudat.data.dao.criteria; - -import eu.eudat.queryable.queryableentity.DataEntity; +import io.swagger.annotations.ApiModelProperty; public abstract class Criteria { + @ApiModelProperty(value = "like", name = "like", dataType = "String", allowEmptyValue = true, example = "\"\"") private String like; public String getLike() { diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/Query.java b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/Query.java index cb808bae6..cffd09906 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/Query.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/Query.java @@ -3,12 +3,14 @@ package eu.eudat.data.query.definition; import eu.eudat.data.dao.criteria.Criteria; import eu.eudat.queryable.QueryableList; import eu.eudat.queryable.queryableentity.DataEntity; +import io.swagger.annotations.ApiModelProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class Query, T extends DataEntity> implements CriteriaQuery { private static final Logger logger = LoggerFactory.getLogger(Query.class); private C criteria; + @ApiModelProperty(value = "query", name = "query", dataType = "String", hidden = true) private QueryableList query; public static class QueryBuilder, T extends DataEntity, Q extends Query> { diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/TableQuery.java b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/TableQuery.java index b2d87cbbb..be9dd77b2 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/TableQuery.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/TableQuery.java @@ -6,12 +6,16 @@ import eu.eudat.data.query.definition.helpers.ColumnOrderings; import eu.eudat.data.query.definition.helpers.SelectionFields; import eu.eudat.queryable.QueryableList; import eu.eudat.queryable.queryableentity.DataEntity; +import io.swagger.annotations.ApiModelProperty; public abstract class TableQuery, T extends DataEntity, K> extends Query implements TableCriteriaQuery { private ColumnOrderings orderings; + @ApiModelProperty(hidden = true) private SelectionFields selection; + @ApiModelProperty(value = "length", name = "length", dataType = "Integer", example = "2") private Integer length; + @ApiModelProperty(value = "offset", name = "offset", dataType = "Integer", example = "0") private Integer offset; public Integer getLength() { diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java index 808cd20e2..c5587a126 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/ColumnOrderings.java @@ -1,11 +1,14 @@ package eu.eudat.data.query.definition.helpers; +import io.swagger.annotations.ApiModelProperty; + import java.util.LinkedList; import java.util.List; public class ColumnOrderings { + @ApiModelProperty(value = "fields", name = "fields", dataType = "List", example = "[]") private List fields; public List getFields() { diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/SelectionFields.java b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/SelectionFields.java index 3857876af..ec41027ec 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/SelectionFields.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/query/definition/helpers/SelectionFields.java @@ -1,8 +1,11 @@ package eu.eudat.data.query.definition.helpers; +import io.swagger.annotations.ApiModelProperty; + public class SelectionFields { + @ApiModelProperty(value = "fields", name = "fields", dataType = "String[]", example = "[]") private String[] fields; public String[] getFields() { diff --git a/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dataset/DatasetPublicCriteria.java b/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dataset/DatasetPublicCriteria.java index f332c7db3..fd3f210b1 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dataset/DatasetPublicCriteria.java +++ b/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dataset/DatasetPublicCriteria.java @@ -3,6 +3,7 @@ package eu.eudat.publicapi.criteria.dataset; import eu.eudat.data.dao.criteria.Criteria; import eu.eudat.data.entities.Dataset; import eu.eudat.elastic.entities.Tag; +import io.swagger.annotations.ApiModelProperty; import java.util.Date; import java.util.List; @@ -10,15 +11,25 @@ import java.util.UUID; public class DatasetPublicCriteria extends Criteria { + @ApiModelProperty(value = "periodStart", name = "periodStart", dataType = "Date", example = "2022-01-01T13:19:42.210Z") private Date periodStart; + @ApiModelProperty(value = "periodEnd", name = "periodEnd", dataType = "Date", example = "2022-12-31T13:19:42.210Z") private Date periodEnd; + @ApiModelProperty(value = "grants", name = "grants", dataType = "List", example = "[]") private List grants; + @ApiModelProperty(value = "collaborators", name = "collaborators", dataType = "List", example = "[]") private List collaborators; + @ApiModelProperty(value = "datasetTemplates", name = "datasetTemplates", dataType = "List", example = "[]") private List datasetTemplates; + @ApiModelProperty(value = "dmpOrganisations", name = "dmpOrganisations", dataType = "List", example = "[]") private List dmpOrganisations; + @ApiModelProperty(value = "tags", name = "tags", dataType = "List", example = "[]") private List tags; + @ApiModelProperty(value = "dmpIds", name = "dmpIds", dataType = "List", example = "[]") private List dmpIds; + @ApiModelProperty(value = "groupIds", name = "groupIds", dataType = "List", example = "[]") private List groupIds; + @ApiModelProperty(value = "allVersions", name = "allVersions", dataType = "Boolean", example = "false") private boolean allVersions; public Date getPeriodStart() { diff --git a/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dmp/DataManagementPlanPublicCriteria.java b/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dmp/DataManagementPlanPublicCriteria.java index 879a9f996..b5079eb27 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dmp/DataManagementPlanPublicCriteria.java +++ b/dmp-backend/web/src/main/java/eu/eudat/publicapi/criteria/dmp/DataManagementPlanPublicCriteria.java @@ -2,20 +2,30 @@ package eu.eudat.publicapi.criteria.dmp; import eu.eudat.data.dao.criteria.Criteria; import eu.eudat.data.entities.DMP; +import io.swagger.annotations.ApiModelProperty; import java.util.Date; import java.util.List; import java.util.UUID; public class DataManagementPlanPublicCriteria extends Criteria { + @ApiModelProperty(value = "periodStart", name = "periodStart", dataType = "Date", example = "2022-01-01T13:19:42.210Z") private Date periodStart; + @ApiModelProperty(value = "periodEnd", name = "periodEnd", dataType = "Date", example = "2022-12-31T13:19:42.210Z") private Date periodEnd; + @ApiModelProperty(value = "grants", name = "grants", dataType = "List", example = "[]") private List grants; + @ApiModelProperty(value = "funders", name = "funders", dataType = "List", example = "[]") private List funders; + @ApiModelProperty(value = "datasetTemplates", name = "datasetTemplates", dataType = "List", example = "[]") private List datasetTemplates; + @ApiModelProperty(value = "dmpOrganisations", name = "dmpOrganisations", dataType = "List", example = "[]") private List dmpOrganisations; + @ApiModelProperty(value = "collaborators", name = "collaborators", dataType = "List", example = "[]") private List collaborators; + @ApiModelProperty(value = "allVersions", name = "allVersions", dataType = "Boolean", example = "false") private boolean allVersions; + @ApiModelProperty(value = "groupIds", name = "groupIds", dataType = "List", example = "[]") private List groupIds; public Date getPeriodStart() { From 4dd338d08ed17727e2c7d8a768f639fdd95ce7e1 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Tue, 18 Oct 2022 14:01:26 +0300 Subject: [PATCH 2/2] #8149 - [Bug fix] Updated condition to check if current user is owner of DMP/ Dataset (drafts.component.ts & recent-edited-activity.component.ts & recent-edited-dataset-activity.component.ts & recent-edited-dmp-activity.component.ts & dataset-listing-item.component.ts & dmp-clone.component.ts & dmp-listing-item.component.ts). --- .../src/app/ui/dashboard/drafts/drafts.component.ts | 2 +- .../recent-edited-activity.component.ts | 2 +- .../recent-edited-dataset-activity.component.ts | 2 +- .../recent-edited-dmp-activity.component.ts | 2 +- .../listing/listing-item/dataset-listing-item.component.ts | 2 +- dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts | 6 +++++- .../dmp/listing/listing-item/dmp-listing-item.component.ts | 2 +- 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts index 2cd48c20e..424072c2b 100644 --- a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts @@ -227,7 +227,7 @@ export class DraftsComponent extends BaseComponent implements OnInit { isUserOwner(activity: DatasetListingModel): boolean { const principal: Principal = this.authentication.current(); - if (principal) return principal.id === activity.users.find(x => x.role === Role.Owner).id; + if (principal) return !!activity.users.find(x => (x.role === Role.Owner) && (principal.id === x.id)); } onCallbackSuccess(id?: String): void { diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts index a26980193..0110adf19 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts @@ -186,7 +186,7 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn isUserOwner(activity: DmpListingModel): boolean { const principal: Principal = this.authentication.current(); - if (principal) return principal.id === activity.users.find(x => x.role === Role.Owner).id; + if (principal) return !!activity.users.find(x => (x.role === Role.Owner) && (principal.id === x.id)); } editClicked(dmp: DmpListingModel) { diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts index 8cd7837fb..1eb17a363 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts @@ -163,7 +163,7 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen isUserOwner(activity: DatasetListingModel): boolean { const principal: Principal = this.authentication.current(); - if (principal) return principal.id === activity.users.find(x => x.role === Role.Owner).id; + if (principal) return !!activity.users.find(x => (x.role === Role.Owner) && (principal.id === x.id)); } goToOverview(id: string): string[] { diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts index 42f1c507e..ae9bfc46d 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts @@ -165,7 +165,7 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O isUserOwner(activity: DmpListingModel): boolean { const principal: Principal = this.authentication.current(); - if (principal) return principal.id === activity.users.find(x => x.role === Role.Owner).id; + if (principal) return !!activity.users.find(x => (x.role === Role.Owner) && (principal.id === x.id)); } editClicked(dmp: DmpListingModel) { diff --git a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.ts b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.ts index ff0ca58e7..284dd1a3d 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/dataset/listing/listing-item/dataset-listing-item.component.ts @@ -74,7 +74,7 @@ export class DatasetListingItemComponent extends BaseComponent implements OnInit setIsUserOwner() { if (this.dataset) { const principal: Principal = this.authentication.current(); - if (principal) this.isUserOwner = principal.id === this.dataset.users.find(x => x.role === Role.Owner).id; + if (principal) this.isUserOwner = !!this.dataset.users.find(x => (x.role === Role.Owner) && (principal.id === x.id)); } } diff --git a/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts b/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts index 82321b4a3..20681c99e 100644 --- a/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts +++ b/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts @@ -210,7 +210,11 @@ export class DmpCloneComponent extends BaseComponent implements OnInit { setIsUserOwner() { if (this.dmp) { const principal: Principal = this.authentication.current(); - this.isUserOwner = principal.id === this.dmp.users.find(x => x.role === Role.Owner).id; + if (principal) { + this.isUserOwner = !!this.dmp.users.find(x => (x.role === Role.Owner) && (principal.id === x.id)); + } else { + this.isUserOwner = false; + } } } diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts index 5f54aee71..c6e72d002 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts @@ -367,6 +367,6 @@ export class DmpListingItemComponent extends BaseComponent implements OnInit { isUserOwner(activity: DmpListingModel): boolean { const principal: Principal = this.authentication.current(); - if (principal) return principal.id === activity.users.find(x => x.role === Role.Owner).id; + if (principal) return !!activity.users.find(x => (x.role === Role.Owner) && (principal.id === x.id)); } }