diff --git a/pom.xml b/pom.xml index 72b069f..9f1e9c1 100644 --- a/pom.xml +++ b/pom.xml @@ -36,5 +36,17 @@ org.slf4j slf4j-api + + org.gcube.common + gcube-jackson-core + + + org.gcube.common + gcube-jackson-annotations + + + org.gcube.common + gcube-jackson-databind + \ No newline at end of file diff --git a/src/main/java/org/gcube/gcat/api/GCatConstants.java b/src/main/java/org/gcube/gcat/api/GCatConstants.java index c18839c..0fe4ccf 100644 --- a/src/main/java/org/gcube/gcat/api/GCatConstants.java +++ b/src/main/java/org/gcube/gcat/api/GCatConstants.java @@ -27,15 +27,4 @@ public class GCatConstants { public static final String ORGANIZATION_FILTER_TEMPLATE = ORGANIZATION_PARAMETER + ":%s"; - public static final String CATALOGUE_MEMBER = "Catalogue-Member"; - public static final String CATALOGUE_EDITOR = "Catalogue-Editor"; - public static final String CATALOGUE_ADMIN = "Catalogue-Admin"; - public static final String CATALOGUE_MODERATOR = "Catalogue-Moderator"; - - /* Content Moderation fields */ - public static final String CM_ITEM_STATUS_QUERY_PARAMETER = "status"; - public static final String SYSTEM_CM_PREFIX = "system:cm_"; - public static final String SYSTEM_CM_ITEM_STATUS = SYSTEM_CM_PREFIX + "item_status"; - public static final String SYSTEM_CM_ITEM_VISIBILITY = SYSTEM_CM_PREFIX + "item_visibility"; - } diff --git a/src/main/java/org/gcube/gcat/api/interfaces/Item.java b/src/main/java/org/gcube/gcat/api/interfaces/Item.java index 5a1ea3f..576e9a4 100644 --- a/src/main/java/org/gcube/gcat/api/interfaces/Item.java +++ b/src/main/java/org/gcube/gcat/api/interfaces/Item.java @@ -7,7 +7,7 @@ import javax.xml.ws.WebServiceException; /** * @author Luca Frosini (ISTI - CNR) */ -public interface Item extends CRUD, Moderated { +public interface Item extends CRUD { public static final String ITEMS = "items"; diff --git a/src/main/java/org/gcube/gcat/api/interfaces/Moderated.java b/src/main/java/org/gcube/gcat/api/interfaces/Moderated.java deleted file mode 100644 index 97724b9..0000000 --- a/src/main/java/org/gcube/gcat/api/interfaces/Moderated.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.gcube.gcat.api.interfaces; - -public interface Moderated { - - public String approve(String moderatorMessage); - - public String reject(String moderatorMessage); - - public void message(String message); - -} diff --git a/src/main/java/org/gcube/gcat/api/CMItemStatus.java b/src/main/java/org/gcube/gcat/api/moderation/CMItemStatus.java similarity index 95% rename from src/main/java/org/gcube/gcat/api/CMItemStatus.java rename to src/main/java/org/gcube/gcat/api/moderation/CMItemStatus.java index 1d1bdc9..97435ff 100644 --- a/src/main/java/org/gcube/gcat/api/CMItemStatus.java +++ b/src/main/java/org/gcube/gcat/api/moderation/CMItemStatus.java @@ -1,4 +1,4 @@ -package org.gcube.gcat.api; +package org.gcube.gcat.api.moderation; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/org/gcube/gcat/api/CMItemVisibility.java b/src/main/java/org/gcube/gcat/api/moderation/CMItemVisibility.java similarity index 94% rename from src/main/java/org/gcube/gcat/api/CMItemVisibility.java rename to src/main/java/org/gcube/gcat/api/moderation/CMItemVisibility.java index 213bfcb..ea25221 100644 --- a/src/main/java/org/gcube/gcat/api/CMItemVisibility.java +++ b/src/main/java/org/gcube/gcat/api/moderation/CMItemVisibility.java @@ -1,4 +1,4 @@ -package org.gcube.gcat.api; +package org.gcube.gcat.api.moderation; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/org/gcube/gcat/api/moderation/Moderated.java b/src/main/java/org/gcube/gcat/api/moderation/Moderated.java new file mode 100644 index 0000000..eee83a4 --- /dev/null +++ b/src/main/java/org/gcube/gcat/api/moderation/Moderated.java @@ -0,0 +1,22 @@ +package org.gcube.gcat.api.moderation; + +/** + * @author Luca Frosini (ISTI-CNR) + */ +public interface Moderated { + + public static final String CATALOGUE_MODERATOR = "Catalogue-Moderator"; + + /* Content Moderation fields */ + public static final String CM_ITEM_STATUS_QUERY_PARAMETER = "status"; + public static final String SYSTEM_CM_PREFIX = "system:cm_"; + public static final String SYSTEM_CM_ITEM_STATUS = SYSTEM_CM_PREFIX + "item_status"; + public static final String SYSTEM_CM_ITEM_VISIBILITY = SYSTEM_CM_PREFIX + "item_visibility"; + + public String approve(String moderatorMessage); + + public String reject(String moderatorMessage); + + public void message(String message); + +} diff --git a/src/main/java/org/gcube/gcat/api/moderation/ModerationContent.java b/src/main/java/org/gcube/gcat/api/moderation/ModerationContent.java new file mode 100644 index 0000000..b36f8a0 --- /dev/null +++ b/src/main/java/org/gcube/gcat/api/moderation/ModerationContent.java @@ -0,0 +1,36 @@ +package org.gcube.gcat.api.moderation; + +import org.gcube.com.fasterxml.jackson.annotation.JsonFormat; +import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import org.gcube.com.fasterxml.jackson.annotation.JsonProperty; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +@JsonIgnoreProperties(ignoreUnknown = true) +public class ModerationContent { + + @JsonProperty(value=Moderated.SYSTEM_CM_ITEM_STATUS,required=false) + @JsonFormat(shape = JsonFormat.Shape.STRING) + protected CMItemStatus cmItemStatus; + + @JsonProperty(required=false) + protected String message; + + public CMItemStatus getCMItemStatus() { + return cmItemStatus; + } + + public void setCMItemStatus(CMItemStatus cmItemStatus) { + this.cmItemStatus = cmItemStatus; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + +} diff --git a/src/main/java/org/gcube/gcat/api/Role.java b/src/main/java/org/gcube/gcat/api/roles/Role.java similarity index 79% rename from src/main/java/org/gcube/gcat/api/Role.java rename to src/main/java/org/gcube/gcat/api/roles/Role.java index 2f06230..764d259 100644 --- a/src/main/java/org/gcube/gcat/api/Role.java +++ b/src/main/java/org/gcube/gcat/api/roles/Role.java @@ -1,4 +1,4 @@ -package org.gcube.gcat.api; +package org.gcube.gcat.api.roles; import java.util.HashMap; import java.util.Map; @@ -8,9 +8,13 @@ import java.util.Map; */ public enum Role { - MEMBER(GCatConstants.CATALOGUE_MEMBER, "member"), - EDITOR(GCatConstants.CATALOGUE_EDITOR, "editor"), - ADMIN(GCatConstants.CATALOGUE_ADMIN, "admin"); + MEMBER(Role.CATALOGUE_MEMBER, "member"), + EDITOR(Role.CATALOGUE_EDITOR, "editor"), + ADMIN(Role.CATALOGUE_ADMIN, "admin"); + + private static final String CATALOGUE_ADMIN = "Catalogue-Admin"; + private static final String CATALOGUE_EDITOR = "Catalogue-Editor"; + private static final String CATALOGUE_MEMBER = "Catalogue-Member"; private final String portalRole; private final String ckanRole;