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;