diff --git a/pom.xml b/pom.xml
index 6d630aa..cc3eba0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.gcube.tools
maven-parent
- 1.2.0
+ 1.1.0
org.gcube.portal
diff --git a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Comments.java b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Comments.java
index 407f88d..6e48b98 100644
--- a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Comments.java
+++ b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Comments.java
@@ -1,7 +1,6 @@
package org.gcube.portal.social.networking.ws.methods.v2;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@@ -16,12 +15,10 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import org.apache.commons.lang.Validate;
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
import org.gcube.common.authorization.library.utils.Caller;
import org.gcube.common.scope.api.ScopeProvider;
@@ -52,8 +49,8 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes;
*/
@Path("2/comments")
@RequestHeaders ({
- @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
- @RequestHeader( name = "Content-Type", description = "application/json")
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
})
public class Comments {
@@ -62,20 +59,20 @@ public class Comments {
/*
* Retrieve the list of comments belonging to the post id (key) of the token in the related context
- * @param key the key as in the POST JSON representation
+ * @param key the key as in the POST JSON representation
* @pathExample /get-comments-by-post-id?key=9ea137e9-6606-45ff-a1a2-94d4e8760583
- * @return the list of comments belonging to the post identified by the key in the context identified by the token
+ * @return the list of comments belonging to the post identified by the key in the context identified by the token
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("get-comments-by-post-id")
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "The list of comments is put into the 'result' field"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "The list of comments is put into the 'result' field"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getAllCommentsByPostId(
@NotNull
- @QueryParam("key")
+ @QueryParam("key")
String key) {
ResponseBean responseBean = new ResponseBean();
@@ -108,8 +105,8 @@ public class Comments {
@Produces(MediaType.APPLICATION_JSON)
@Path("get-comments-user")
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "The list of comments is put into the 'result' field"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "The list of comments is put into the 'result' field"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getCommentsUser() {
@@ -143,10 +140,10 @@ public class Comments {
@Produces(MediaType.APPLICATION_JSON)
@Path("get-comments-user-by-time")
public Response getCommentsUserByTime(
- @QueryParam("time")
- @Min(value = 0, message="time cannot be negative")
+ @QueryParam("time")
+ @Min(value = 0, message="time cannot be negative")
long timeInMillis
- ) throws ValidationException{
+ ) throws ValidationException{
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
@@ -182,12 +179,12 @@ public class Comments {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "Successfull created, the new comment is reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "Successfull created, the new comment is reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response writeComment(
- @NotNull(message="Comment to write is missing")
- @Valid
+ @NotNull(message="Comment to write is missing")
+ @Valid
CommentInputBean comment) throws ValidationException {
Caller caller = AuthorizationProvider.instance.get();
String username = caller.getClient().getId();
@@ -223,7 +220,7 @@ public class Comments {
responseBean.setSuccess(false);
status = Status.INTERNAL_SERVER_ERROR;
return Response.status(status).entity(responseBean).build();
- }
+ }
catch(Exception e) {
logger.error("Unable to write comment", e);
responseBean.setMessage("Could not reach the DB to write the comment, something went wrong");
@@ -235,14 +232,16 @@ public class Comments {
+
+
//lib api
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("add-comment-lib")
public Response addCommentLib(@NotNull(message="Comment to write is missing")
- @Valid
- Comment comment)throws ValidationException {
+ @Valid
+ Comment comment)throws ValidationException {
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
try {
@@ -396,4 +395,6 @@ public class Comments {
}
return Response.status(status).entity(responseBean).build();
}
+
+
}
diff --git a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/HashTags.java b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/HashTags.java
index 7964e22..29f97ea 100644
--- a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/HashTags.java
+++ b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/HashTags.java
@@ -1,7 +1,5 @@
package org.gcube.portal.social.networking.ws.methods.v2;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -10,18 +8,14 @@ import javax.validation.ValidationException;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.ws.rs.*;
-import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import org.apache.commons.lang.Validate;
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
import org.gcube.common.authorization.library.utils.Caller;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.portal.databook.server.DatabookStore;
-import org.gcube.portal.databook.shared.Comment;
-import org.gcube.portal.databook.shared.Feed;
import org.gcube.portal.databook.shared.Post;
import org.gcube.portal.social.networking.liferay.ws.GroupManagerWSBuilder;
import org.gcube.portal.social.networking.ws.outputs.ResponseBean;
@@ -39,9 +33,9 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes;
*/
@Path("2/hashtags")
@RequestHeaders ({
- @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
- @RequestHeader( name = "Content-Type", description = "application/json")
- })
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
+})
public class HashTags {
// Logger
@@ -51,8 +45,8 @@ public class HashTags {
@Path("get-hashtags-and-occurrences/")
@Produces({MediaType.APPLICATION_JSON})
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Hashtags and occurrences retrieved, reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Hashtags and occurrences retrieved, reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
/**
* @return hashtags in the context bound to the auth token
@@ -103,7 +97,7 @@ public class HashTags {
@NotNull(message="hashtag to save is missing")
@Valid
List hashtags
- ) throws ValidationException{
+ ) throws ValidationException {
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
try{
@@ -281,6 +275,7 @@ public class HashTags {
@QueryParam("hashtag")
String hashtag
) throws ValidationException {
+ hashtag = "#" + hashtag;
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
@@ -300,4 +295,5 @@ public class HashTags {
}
return Response.status(status).entity(responseBean).build();
}
+
}
diff --git a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Invites.java b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Invites.java
index 5ea067b..5f19698 100644
--- a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Invites.java
+++ b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Invites.java
@@ -41,9 +41,9 @@ public class Invites {
@QueryParam("email")
String email
) throws ValidationException{
- ResponseBean responseBean = new ResponseBean();
- Status status = Status.OK;
- String inv = null;
+ ResponseBean responseBean = new ResponseBean();
+ Status status = Status.OK;
+ String inv = null;
try{
logger.info("Retrieving invite for vre " + vreid);
diff --git a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Likes.java b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Likes.java
index 6570596..a247f11 100644
--- a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Likes.java
+++ b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Likes.java
@@ -1,12 +1,10 @@
package org.gcube.portal.social.networking.ws.methods.v2;
-import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import javax.validation.ValidationException;
-import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -14,16 +12,13 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import org.apache.commons.lang.Validate;
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
import org.gcube.common.authorization.library.utils.Caller;
import org.gcube.common.scope.api.ScopeProvider;
-import org.gcube.portal.databook.shared.Comment;
import org.gcube.portal.databook.shared.Like;
import org.gcube.portal.social.networking.ws.inputs.LikeInputBean;
import org.gcube.portal.social.networking.ws.inputs.PostId;
@@ -43,8 +38,8 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes;
*/
@Path("2/likes")
@RequestHeaders ({
- @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
- @RequestHeader( name = "Content-Type", description = "application/json")
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
})
public class Likes {
@@ -53,20 +48,20 @@ public class Likes {
/*
* Retrieve the list of likes belonging to the post id (key) of the token in the related context
- * @param key the key as in the POST JSON representation
+ * @param key the key as in the POST JSON representation
* @pathExample /get-likes-by-post-id?key=9ea137e9-6606-45ff-a1a2-94d4e8760583
- * @return the list of likes belonging to the post identified by the key in the context identified by the token
+ * @return the list of likes belonging to the post identified by the key in the context identified by the token
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("get-likes-by-post-id")
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "The list of likes is put into the 'result' field"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "The list of likes is put into the 'result' field"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getAllLikesByPostId(
@NotNull
- @QueryParam("key")
+ @QueryParam("key")
String key) {
ResponseBean responseBean = new ResponseBean();
@@ -93,8 +88,8 @@ public class Likes {
/**
* Create a new like to a post in the context of the token
- * @param post The post id to be liked
- * @return true if everything is OK
+ * @param postid The post id to be liked
+ * @return true if everything is OK
* @throws ValidationException
*/
@POST
@@ -102,12 +97,12 @@ public class Likes {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "Successful created, the like operation result is reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "Successful created, the like operation result is reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response like(
- @NotNull(message="Post to like is missing")
- @Valid
+ @NotNull(message="Post to like is missing")
+ @Valid
PostId post) throws ValidationException {
Caller caller = AuthorizationProvider.instance.get();
String username = caller.getClient().getId();
@@ -130,10 +125,10 @@ public class Likes {
responseBean.setSuccess(true);
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Unlike to a post in the context of the token
- * @param likeInputBean The post id to be liked
+ * @param postid The post id to be liked
* @return true if everything is OK
* @throws ValidationException
*/
@@ -142,12 +137,12 @@ public class Likes {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "The unlike operation result is reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "The unlike operation result is reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response unlike(
- @NotNull(message="Post to unlike is missing")
- @Valid
+ @NotNull(message="Post to unlike is missing")
+ @Valid
LikeInputBean likeInputBean) throws ValidationException {
Caller caller = AuthorizationProvider.instance.get();
String username = caller.getClient().getId();
diff --git a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java
index aca7d05..3878235 100644
--- a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java
+++ b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java
@@ -1,7 +1,10 @@
package org.gcube.portal.social.networking.ws.methods.v2;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
import javax.validation.Valid;
import javax.validation.ValidationException;
@@ -14,12 +17,10 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import org.apache.commons.lang.Validate;
import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager;
import org.gcube.applicationsupportlayer.social.NotificationsManager;
import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingSite;
@@ -30,7 +31,10 @@ import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.authorization.library.utils.Caller;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.common.scope.impl.ScopeBean;
-import org.gcube.portal.databook.shared.*;
+import org.gcube.portal.databook.shared.Notification;
+import org.gcube.portal.databook.shared.NotificationChannelType;
+import org.gcube.portal.databook.shared.NotificationType;
+import org.gcube.portal.databook.shared.RunningJob;
import org.gcube.portal.notifications.bean.GenericItemBean;
import org.gcube.portal.notifications.thread.JobStatusNotificationThread;
import org.gcube.portal.social.networking.caches.SocialNetworkingSiteFinder;
@@ -77,8 +81,8 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes;
*/
@Path("2/notifications")
@RequestHeaders ({
- @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
- @RequestHeader( name = "Content-Type", description = "application/json")
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
})
public class Notifications {
@@ -97,15 +101,15 @@ public class Notifications {
@Path("get-range-notifications/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Notifications retrieved and reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Notifications retrieved and reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getRangeNotifications(
- @DefaultValue("1") @QueryParam("from") @Min(value=1, message="from must be greater or equal to 1")
+ @DefaultValue("1") @QueryParam("from") @Min(value=1, message="from must be greater or equal to 1")
int from,
- @DefaultValue("10") @QueryParam("quantity") @Min(value=0, message="quantity must be greater or equal to 0")
+ @DefaultValue("10") @QueryParam("quantity") @Min(value=0, message="quantity must be greater or equal to 0")
int quantity
- ) throws ValidationException{
+ ) throws ValidationException{
Caller caller = AuthorizationProvider.instance.get();
String username = caller.getClient().getId();
@@ -138,19 +142,19 @@ public class Notifications {
* @responseExample application/json { "success": true, "message": null "result": true }
* @param username the username you want to check
* @return true if the notification for the user are disabled (Catalogue and Workspace ones)
- *
+ *
*/
@GET
@Path("is-user-disabled/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "true if the notification for the username given as query param are disabled (Catalogue and Workspace ones), false otherwise"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "true if the notification for the username given as query param are disabled (Catalogue and Workspace ones), false otherwise"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
@AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE}, exception=AuthException.class)
public Response isUserDisabled(
- @QueryParam("username") @NotNull(message="username cannot be null")
+ @QueryParam("username") @NotNull(message="username cannot be null")
String username) throws ValidationException{
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
@@ -185,8 +189,8 @@ public class Notifications {
// })
// @AuthorizationControl(allowedRoles={INFRASTRUCTURE_MANAGER_ROLE}, exception=AuthException.class)
// public Response setUserNotifications(
-// @NotNull(message="input is missing")
-// @Valid
+// @NotNull(message="input is missing")
+// @Valid
// UserSetNotificationBean setting) throws ValidationException{
//
// Caller caller = AuthorizationProvider.instance.get();
@@ -219,10 +223,10 @@ public class Notifications {
// }
/**
- * @deprecated
+ * @deprecated
* @param usernameToCheck
* @return true if notification are enabled for this user
- * @throws IOException
+ * @throws IOException
*/
private boolean isNotificationEnabled(String usernameToCheck) throws IOException {
// MemcachedClient entries = new DistributedCacheClient().getMemcachedClient();
@@ -235,12 +239,12 @@ public class Notifications {
return true;
}
// /**
-// *
+// *
// * @param username the user you want to disable or enable notifications (max 29 days)
// * @param callerId the username or clientid of the operation executor
// * @param disable true if you want to disable the notifications for this user
// * @return true if the operation was performed
-// * @throws IOException
+// * @throws IOException
// */
// private Boolean setUserNotificationsOnOff(String username, boolean disable, String callerId) throws IOException {
// MemcachedClient entries = new DistributedCacheClient().getMemcachedClient();
@@ -273,12 +277,12 @@ public class Notifications {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Notification is sent correctly"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Notification is sent correctly"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response notifyJobStatus(
- @NotNull(message="input is missing")
- @Valid
+ @NotNull(message="input is missing")
+ @Valid
JobNotificationBean job) throws ValidationException{
Caller caller = AuthorizationProvider.instance.get();
@@ -329,12 +333,12 @@ public class Notifications {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Catalogue Notification is sent correctly"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Catalogue Notification is sent correctly"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response catalogue(
- @NotNull(message="input is missing")
- @Valid
+ @NotNull(message="input is missing")
+ @Valid
CatalogueEvent event) throws ValidationException, UserManagementSystemException, UserRetrievalFault{
Caller caller = AuthorizationProvider.instance.get();
@@ -350,14 +354,14 @@ public class Notifications {
SecurityTokenProvider.instance.set(LiferayJSONWsCredentials.getSingleton().getNotifierUserToken());
username = jarvis.getUsername();
fullName = caller.getClient().getId().replace("service-account-", ""); // the actual name of the IAM Client
- senderUser = um.getUserByUsername(username);
+ senderUser = um.getUserByUsername(username);
user = new SocialNetworkingUser(senderUser.getUsername(), senderUser.getEmail(), fullName, senderUser.getUserAvatarURL());
}else{
username = caller.getClient().getId();
- senderUser = um.getUserByUsername(username);
+ senderUser = um.getUserByUsername(username);
user = new SocialNetworkingUser(senderUser.getUsername(), senderUser.getEmail(), senderUser.getFullname(), senderUser.getUserAvatarURL());
- }
-
+ }
+
String context = ScopeProvider.instance.get();
logger.debug("catalogue notifications from user = " + username);
@@ -367,9 +371,9 @@ public class Notifications {
try {
logger.debug("catalogue notifications type is " + event.getType());
SocialNetworkingSite site = SocialNetworkingSiteFinder.getSocialNetworkingSiteFromScope(context);
-
-
- NotificationsManager nm = new ApplicationNotificationsManager(UserManagerWSBuilder.getInstance().getUserManager(), site, context, user);
+
+
+ NotificationsManager nm = new ApplicationNotificationsManager(UserManagerWSBuilder.getInstance().getUserManager(), site, context, user);
String[] idsToNotify = event.getIdsToNotify();
if (! event.idsAsGroup()) {
@@ -378,7 +382,7 @@ public class Notifications {
if (isNotificationEnabled(userIdToNotify)) {
String username2Notify = null;
try {
- username2Notify = um.getUserByUsername(userIdToNotify).getUsername();
+ username2Notify = um.getUserByUsername(userIdToNotify).getUsername();
}
catch (Exception e) {
status = Status.BAD_REQUEST;
@@ -388,14 +392,14 @@ public class Notifications {
return Response.status(status).entity(responseBean).build();
}
- deliveryResult =
+ deliveryResult =
nm.notifyCatalogueEvent(
- CatalogueEventTypeMapper.getType(event.getType()),
- username2Notify,
- event.getItemId(),
- event.getNotifyText(),
+ CatalogueEventTypeMapper.getType(event.getType()),
+ username2Notify,
+ event.getItemId(),
+ event.getNotifyText(),
event.getItemURL());
- }
+ }
else {
Log.info("Notification disabled (admin) for user "+userIdToNotify + " will not notify");
}
@@ -416,20 +420,20 @@ public class Notifications {
String[] userIdsToNotify = getUsernamesByContext(scope).toArray(new String[0]); //resolve the members
for (int j = 0; j < userIdsToNotify.length; j++) {
String userIdToNotify = userIdsToNotify[j];
- if (isNotificationEnabled(userIdToNotify)) {
- deliveryResult =
+ if (isNotificationEnabled(userIdToNotify)) {
+ deliveryResult =
nm.notifyCatalogueEvent(
- CatalogueEventTypeMapper.getType(event.getType()),
- userIdToNotify,
- event.getItemId(),
- event.getNotifyText(),
+ CatalogueEventTypeMapper.getType(event.getType()),
+ userIdToNotify,
+ event.getItemId(),
+ event.getNotifyText(),
event.getItemURL());
} else {
Log.info("Notification disabled (admin) for user "+userIdToNotify + " will not notify");
}
}
}
- }
+ }
catch(IllegalArgumentException e) {
status = Status.BAD_REQUEST;
logger.error("Context not valid", e);
@@ -469,12 +473,12 @@ public class Notifications {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Workspace Notification is sent correctly"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Workspace Notification is sent correctly"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response workspace(
- @NotNull(message="input is missing")
- @Valid
+ @NotNull(message="input is missing")
+ @Valid
WorkspaceEvent event) throws ValidationException{
Caller caller = AuthorizationProvider.instance.get();
@@ -498,23 +502,23 @@ public class Notifications {
SecurityTokenProvider.instance.set(LiferayJSONWsCredentials.getSingleton().getNotifierUserToken());
username = jarvis.getUsername();
fullName = caller.getClient().getId().replace("service-account-", ""); // the actual name of the IAM Client
- senderUser = um.getUserByUsername(username);
+ senderUser = um.getUserByUsername(username);
user = new SocialNetworkingUser(senderUser.getUsername(), senderUser.getEmail(), fullName, senderUser.getUserAvatarURL());
}else{
username = caller.getClient().getId();
- senderUser = um.getUserByUsername(username);
+ senderUser = um.getUserByUsername(username);
user = new SocialNetworkingUser(senderUser.getUsername(), senderUser.getEmail(), senderUser.getFullname(), senderUser.getUserAvatarURL());
- }
- NotificationsManager nm = new ApplicationNotificationsManager(UserManagerWSBuilder.getInstance().getUserManager(), site, context, user);
+ }
+ NotificationsManager nm = new ApplicationNotificationsManager(UserManagerWSBuilder.getInstance().getUserManager(), site, context, user);
String[] idsToNotify = event.getIdsToNotify();
if (! event.idsAsGroup()) {
for (int i = 0; i < idsToNotify.length; i++) {
String userIdToNotify = idsToNotify[i];
- if (isNotificationEnabled(userIdToNotify)) {
+ if (isNotificationEnabled(userIdToNotify)) {
String username2Notify = "";
try {
- username2Notify = um.getUserByUsername(userIdToNotify).getUsername();
+ username2Notify = um.getUserByUsername(userIdToNotify).getUsername();
}
catch (Exception e) {
status = Status.NOT_ACCEPTABLE;
@@ -544,14 +548,14 @@ public class Notifications {
String[] userIdsToNotify = getUsernamesByContext(scope).toArray(new String[0]); //resolve the members
for (int j = 0; j < userIdsToNotify.length; j++) {
String userIdToNotify = userIdsToNotify[j];
- if (isNotificationEnabled(userIdToNotify))
+ if (isNotificationEnabled(userIdToNotify))
deliveryResult = notifyWorkspaceEvent(event, nm, userIdToNotify);
else {
Log.info("Notification disabled (admin) for user "+userIdToNotify + " will not notify");
}
}
}
- }
+ }
catch(IllegalArgumentException e) {
status = Status.BAD_REQUEST;
logger.error("Context not valid", e);
@@ -580,7 +584,7 @@ public class Notifications {
return Response.status(status).entity(responseBean).build();
}
/**
- *
+ *
* @param event
* @param nm
* @param idToNotify
@@ -589,49 +593,49 @@ public class Notifications {
private boolean notifyWorkspaceEvent(WorkspaceEvent event, NotificationsManager nm, String idToNotify) {
try {
switch (event.getType()) {
- case ITEM_NEW: {
- AddedItemEvent itemBean = (AddedItemEvent) event;
- return nm.notifyAddedItem(idToNotify, WorkspaceItemMapper.getFileItem(itemBean.getItem()), WorkspaceItemMapper.getSharedFolder(itemBean.getItem().getParent()));
- }
- case ITEM_UPDATE: {
- UpdatedItemEvent itemBean = (UpdatedItemEvent) event;
- return nm.notifyUpdatedItem(idToNotify, WorkspaceItemMapper.getFileItem(itemBean.getItem()), WorkspaceItemMapper.getSharedFolder(itemBean.getItem().getParent()));
- }
- case ITEM_DELETE: {
- DeletedItemEvent itemBean = (DeletedItemEvent) event;
- return nm.notifyRemovedItem(idToNotify, itemBean.getItemName(), WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
- }
- case FOLDER_SHARE: {
- SharedFolderEvent itemBean = (SharedFolderEvent) event;
- return nm.notifyFolderSharing(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
- }
- case FOLDER_UNSHARE: {
- UnsharedFolderEvent itemBean = (UnsharedFolderEvent) event;
- return nm.notifyFolderUnsharing(idToNotify, itemBean.getUnsharedFolderId(), itemBean.getUnsharedFolderName());
- }
- case FOLDER_RENAME: {
- RenamedFolderEvent itemBean = (RenamedFolderEvent) event;
- return nm.notifyFolderRenaming(idToNotify, itemBean.getPreviousName(), itemBean.getNewName(), itemBean.getRenamedFolderId());
- }
- case FOLDER_ADMIN_UPGRADE: {
- FolderAdminUpgradeEvent itemBean = (FolderAdminUpgradeEvent) event;
- return nm.notifyAdministratorUpgrade(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
- }
- case FOLDER_ADMIN_DOWNGRADE: {
- FolderAdminDowngradeEvent itemBean = (FolderAdminDowngradeEvent) event;
- return nm.notifyAdministratorDowngrade(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
- }
- case FOLDER_ADDEDUSER: {
- FolderAddedUserEvent itemBean = (FolderAddedUserEvent) event;
- UserManager userManager = UserManagerWSBuilder.getInstance().getUserManager();
- return nm.notifyFolderAddedUsers(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()), itemBean.getNewAddedUserIds(), userManager);
- }
- case FOLDER_REMOVEDUSER: {
- FolderRemovedUserEvent itemBean = (FolderRemovedUserEvent) event;
- return nm.notifyFolderRemovedUser(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
- }
- default:
- break;
+ case ITEM_NEW: {
+ AddedItemEvent itemBean = (AddedItemEvent) event;
+ return nm.notifyAddedItem(idToNotify, WorkspaceItemMapper.getFileItem(itemBean.getItem()), WorkspaceItemMapper.getSharedFolder(itemBean.getItem().getParent()));
+ }
+ case ITEM_UPDATE: {
+ UpdatedItemEvent itemBean = (UpdatedItemEvent) event;
+ return nm.notifyUpdatedItem(idToNotify, WorkspaceItemMapper.getFileItem(itemBean.getItem()), WorkspaceItemMapper.getSharedFolder(itemBean.getItem().getParent()));
+ }
+ case ITEM_DELETE: {
+ DeletedItemEvent itemBean = (DeletedItemEvent) event;
+ return nm.notifyRemovedItem(idToNotify, itemBean.getItemName(), WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
+ }
+ case FOLDER_SHARE: {
+ SharedFolderEvent itemBean = (SharedFolderEvent) event;
+ return nm.notifyFolderSharing(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
+ }
+ case FOLDER_UNSHARE: {
+ UnsharedFolderEvent itemBean = (UnsharedFolderEvent) event;
+ return nm.notifyFolderUnsharing(idToNotify, itemBean.getUnsharedFolderId(), itemBean.getUnsharedFolderName());
+ }
+ case FOLDER_RENAME: {
+ RenamedFolderEvent itemBean = (RenamedFolderEvent) event;
+ return nm.notifyFolderRenaming(idToNotify, itemBean.getPreviousName(), itemBean.getNewName(), itemBean.getRenamedFolderId());
+ }
+ case FOLDER_ADMIN_UPGRADE: {
+ FolderAdminUpgradeEvent itemBean = (FolderAdminUpgradeEvent) event;
+ return nm.notifyAdministratorUpgrade(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
+ }
+ case FOLDER_ADMIN_DOWNGRADE: {
+ FolderAdminDowngradeEvent itemBean = (FolderAdminDowngradeEvent) event;
+ return nm.notifyAdministratorDowngrade(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
+ }
+ case FOLDER_ADDEDUSER: {
+ FolderAddedUserEvent itemBean = (FolderAddedUserEvent) event;
+ UserManager userManager = UserManagerWSBuilder.getInstance().getUserManager();
+ return nm.notifyFolderAddedUsers(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()), itemBean.getNewAddedUserIds(), userManager);
+ }
+ case FOLDER_REMOVEDUSER: {
+ FolderRemovedUserEvent itemBean = (FolderRemovedUserEvent) event;
+ return nm.notifyFolderRemovedUser(idToNotify, WorkspaceItemMapper.getSharedFolder(itemBean.getFolder()));
+ }
+ default:
+ break;
}
} catch(Exception e){
logger.error("Unable to send job notification", e);
@@ -640,7 +644,7 @@ public class Notifications {
return false;
}
/**
- *
+ *
* @param context
* @return
* @throws Exception
@@ -672,6 +676,7 @@ public class Notifications {
+
//library api
@POST
@Consumes(MediaType.APPLICATION_JSON)
@@ -970,4 +975,5 @@ public class Notifications {
}
return Response.status(status).entity(responseBean).build();
}
+
}
diff --git a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Posts.java b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Posts.java
index 7419441..e791b99 100644
--- a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Posts.java
+++ b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Posts.java
@@ -2,7 +2,6 @@ package org.gcube.portal.social.networking.ws.methods.v2;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -17,12 +16,10 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
-import org.apache.commons.lang.Validate;
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
import org.gcube.common.authorization.library.utils.Caller;
import org.gcube.common.scope.api.ScopeProvider;
@@ -32,7 +29,6 @@ import org.gcube.portal.databook.shared.ex.ColumnNameNotFoundException;
import org.gcube.portal.databook.shared.ex.FeedIDNotFoundException;
import org.gcube.portal.databook.shared.ex.FeedTypeNotFoundException;
import org.gcube.portal.databook.shared.ex.PrivacyLevelTypeNotFoundException;
-import org.gcube.portal.social.networking.ws.inputs.PostId;
import org.gcube.portal.social.networking.ws.inputs.PostInputBean;
import org.gcube.portal.social.networking.ws.outputs.ResponseBean;
import org.gcube.portal.social.networking.ws.utils.CassandraConnection;
@@ -51,14 +47,14 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes;
*/
@Path("2/posts")
@RequestHeaders ({
- @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
- @RequestHeader( name = "Content-Type", description = "application/json")
+ @RequestHeader( name = "Authorization", description = "Bearer token, see https://dev.d4science.org/how-to-access-resources"),
+ @RequestHeader( name = "Content-Type", description = "application/json")
})
public class Posts {
// Logger
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(Posts.class);
-
+
/**
* Retrieve posts of the auth token's owner, and allow to filter them by time"
* @param timeInMillis The reference time since when retrieving posts
@@ -69,13 +65,13 @@ public class Posts {
@Path("get-posts-user-since/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getRecentPostsByUserAndDate(
- @QueryParam("time") @Min(value = 0, message="time cannot be negative")
+ @QueryParam("time") @Min(value = 0, message="time cannot be negative")
long timeInMillis
- ) throws ValidationException{
+ ) throws ValidationException{
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
@@ -102,8 +98,8 @@ public class Posts {
return Response.status(status).entity(responseBean).build();
}
-
-
+
+
/**
* Retrieve all user's posts
* @return all posts of the auth token's owner in the context identified by the token
@@ -112,8 +108,8 @@ public class Posts {
@Path("get-posts-user/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getAllPostsByUser() {
@@ -140,7 +136,7 @@ public class Posts {
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Retrieve a post by id
* @return the post if the post id belongs to a post in the context identified by the token
@@ -149,18 +145,18 @@ public class Posts {
@Path("get-post/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getPost(@QueryParam("id") String id) {
- String context = ScopeProvider.instance.get();
+ String context = ScopeProvider.instance.get();
Caller caller = AuthorizationProvider.instance.get();
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
List posts = new ArrayList<>();
try{
logger.debug("Retrieving post with id " + id);
- try {
+ try {
posts.add(CassandraConnection.getInstance().getDatabookStore().readPost(id));
} catch(FeedIDNotFoundException e){
responseBean.setMessage("The post with id " + id + " does not exist in context " + context);
@@ -187,7 +183,7 @@ public class Posts {
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Retrieve a given quantity of latest user's posts
* @param quantity the number of latest post to get
@@ -199,13 +195,13 @@ public class Posts {
@Path("get-posts-user-quantity/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Successful retrieval of posts, reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getQuantityPostsByUser(
- @DefaultValue("10")
- @QueryParam("quantity")
- @Min(value=0, message="quantity cannot be negative")
+ @DefaultValue("10")
+ @QueryParam("quantity")
+ @Min(value=0, message="quantity cannot be negative")
int quantity) throws ValidationException{
Caller caller = AuthorizationProvider.instance.get();
@@ -241,7 +237,7 @@ public class Posts {
}
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Create a new user post having as owner the auth token's owner
* @param post The post to be written
@@ -253,12 +249,12 @@ public class Posts {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "Successfull created, the new post is reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "Successfull created, the new post is reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response writePostUser(
- @NotNull(message="Post to write is missing")
- @Valid
+ @NotNull(message="Post to write is missing")
+ @Valid
PostInputBean post) throws ValidationException{
logger.debug("Request of writing a feed coming from user " + post);
@@ -288,15 +284,15 @@ public class Posts {
logger.debug("Trying to share user post...");
Post res = SocialUtils.shareUserUpdate(
username,
- postText,
- context,
+ postText,
+ context,
previewTitle,
previewDescription,
previewHost,
previewUrl,
- httpImageUrl,
+ httpImageUrl,
enableNotification
- );
+ );
if(res != null){
logger.debug("Post correctly written by user " + username);
@@ -313,7 +309,7 @@ public class Posts {
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Retrieve the application's posts
* @return the application (IAM Client) posts belonging to the token's owner (i.e., an application)"
@@ -322,9 +318,9 @@ public class Posts {
@Path("get-posts-app/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Successfull created, the new post is reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 403, condition = "\"There is no application profile with such token"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Successfull created, the new post is reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 403, condition = "\"There is no application profile with such token"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getAllPostsByApp() {
@@ -364,7 +360,7 @@ public class Posts {
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Create a new application post having as owner-application the token's owner (the IAM Client), note that the application must be registered on the Information System
* @param post The post to be written
@@ -375,13 +371,13 @@ public class Posts {
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Successfull created, the new post is reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 403, condition = "\"There is no application profile with such token"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Successfull created, the new post is reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 403, condition = "\"There is no application profile with such token"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response writePostApp(
- @NotNull(message="Post to write is null")
- @Valid
+ @NotNull(message="Post to write is null")
+ @Valid
PostInputBean post){
Caller caller = AuthorizationProvider.instance.get();
@@ -419,15 +415,15 @@ public class Posts {
// write post + notification if it is the case
Post written = SocialUtils.shareApplicationUpdate(
- postText,
- params,
- previewTitle,
- previewDescription,
- httpImageUrl,
- appProfile,
+ postText,
+ params,
+ previewTitle,
+ previewDescription,
+ httpImageUrl,
+ appProfile,
caller,
enableNotification
- );
+ );
if(written != null){
responseBean.setResult(written);
@@ -443,15 +439,15 @@ public class Posts {
}
/**
- *
+ *
* @return all the posts in the context bound to the auth token
*/
@GET
@Path("get-posts-vre/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "Sccessfull retrieved posts, they are reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "Sccessfull retrieved posts, they are reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getAllPostsByVRE() {
@@ -478,28 +474,28 @@ public class Posts {
/**
* return the most recent posts for this vre up to quantity param and the last index of the posts in the timeline
* lastReturnedPostTimelineIndex is useful to know from where to start the range the next time you ask, because there are deletions
- *
+ *
* @param from the range start (most recent feeds for this vre) has to be greater than 0
* @param quantity the number of most recent feeds for this vre starting from "from" param
* @pathExample /get-recent-posts-vre-by-range?from=1&quantity=10
* @return a RangePosts containing of most recent feeds for this vre
- * @throws FeedTypeNotFoundException
- * @throws PrivacyLevelTypeNotFoundException
- * @throws ColumnNameNotFoundException
+ * @throws FeedTypeNotFoundException
+ * @throws PrivacyLevelTypeNotFoundException
+ * @throws ColumnNameNotFoundException
*/
@GET
@Path("get-recent-posts-vre-by-range/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "Sccessfull retrieved posts, they are reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "Sccessfull retrieved posts, they are reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getRecentPostsByVREAndRange(
- @QueryParam("from")
- @Min(value=1, message="from cannot be negative")
+ @QueryParam("from")
+ @Min(value=1, message="from cannot be negative")
int from,
- @QueryParam("quantity")
- @Min(value=1, message="quantity cannot be negative")
+ @QueryParam("quantity")
+ @Min(value=1, message="quantity cannot be negative")
int quantity) throws ValidationException {
String context = ScopeProvider.instance.get();
@@ -533,12 +529,12 @@ public class Posts {
@Path("get-posts-by-hashtag/")
@Produces({MediaType.APPLICATION_JSON})
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "Sccessfull retrieved posts, they are reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "Sccessfull retrieved posts, they are reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getPostsByHashTags(
- @QueryParam("hashtag")
- @NotNull(message="hashtag cannot be missing")
+ @QueryParam("hashtag")
+ @NotNull(message="hashtag cannot be missing")
String hashtag) throws ValidationException {
Caller caller = AuthorizationProvider.instance.get();
@@ -560,7 +556,7 @@ public class Posts {
}
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Retrieve ids (UUID) of the liked posts by the user
* @return ids (UUID) of the liked posts by the user in the context bound to the auth token
@@ -569,8 +565,8 @@ public class Posts {
@Path("get-id-liked-posts/")
@Produces({MediaType.APPLICATION_JSON})
@StatusCodes ({
- @ResponseCode ( code = 201, condition = "Sccessfull retrieved ids, they are reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 201, condition = "Sccessfull retrieved ids, they are reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getAllLikedPostIdsByUser() {
@@ -599,7 +595,7 @@ public class Posts {
return Response.status(status).entity(responseBean).build();
}
-
+
/**
* Retrieve posts liked by the user
* @param limit The maximum number of posts to be retrieved
@@ -610,13 +606,13 @@ public class Posts {
@Path("get-liked-posts/")
@Produces(MediaType.APPLICATION_JSON)
@StatusCodes ({
- @ResponseCode ( code = 200, condition = "Successfull retrieved posts, they are reported in the 'result' field of the returned object"),
- @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
+ @ResponseCode ( code = 200, condition = "Successfull retrieved posts, they are reported in the 'result' field of the returned object"),
+ @ResponseCode ( code = 500, condition = ErrorMessages.ERROR_IN_API_RESULT)
})
public Response getAllLikedPostsByUser(
- @DefaultValue("10")
- @QueryParam("limit")
- @Min(message="limit cannot be negative", value = 0)
+ @DefaultValue("10")
+ @QueryParam("limit")
+ @Min(message="limit cannot be negative", value = 0)
int limit) throws ValidationException{
Caller caller = AuthorizationProvider.instance.get();
@@ -646,6 +642,7 @@ public class Posts {
+
//library api
@POST
@Consumes(MediaType.APPLICATION_JSON)
@@ -883,7 +880,7 @@ public class Posts {
public Response getAllPostsByAppLib(
@QueryParam("appid")
String appid
- ) throws ValidationException{
+ ) throws ValidationException{
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
try{
@@ -980,7 +977,7 @@ public class Posts {
public Response getAllPostsByVRELib(
@QueryParam("vreid")
String vreid
- ) throws ValidationException{
+ ) throws ValidationException{
ResponseBean responseBean = new ResponseBean();
Status status = Status.OK;
try{