Social service - More REST API resoruces
This commit is contained in:
parent
0551ee95f3
commit
a55ba31d9a
2
pom.xml
2
pom.xml
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>org.gcube.tools</groupId>
|
||||
<artifactId>maven-parent</artifactId>
|
||||
<version>1.2.0</version>
|
||||
<version>1.1.0</version>
|
||||
</parent>
|
||||
|
||||
<groupId>org.gcube.portal</groupId>
|
||||
|
|
|
@ -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 {
|
||||
|
||||
|
@ -70,8 +67,8 @@ public class Comments {
|
|||
@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
|
||||
|
@ -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() {
|
||||
|
||||
|
@ -146,7 +143,7 @@ public class Comments {
|
|||
@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,8 +179,8 @@ 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")
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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<String> 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 {
|
||||
|
||||
|
@ -61,8 +56,8 @@ public class Likes {
|
|||
@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
|
||||
|
@ -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,8 +97,8 @@ 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")
|
||||
|
@ -133,7 +128,7 @@ public class Likes {
|
|||
|
||||
/**
|
||||
* 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,8 +137,8 @@ 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")
|
||||
|
|
|
@ -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")
|
||||
int from,
|
||||
@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();
|
||||
|
@ -145,8 +149,8 @@ public class Notifications {
|
|||
|
||||
@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(
|
||||
|
@ -273,8 +277,8 @@ 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")
|
||||
|
@ -329,8 +333,8 @@ 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")
|
||||
|
@ -469,8 +473,8 @@ 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")
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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,8 +47,8 @@ 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 {
|
||||
|
||||
|
@ -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")
|
||||
long timeInMillis
|
||||
) throws ValidationException{
|
||||
) throws ValidationException{
|
||||
|
||||
ResponseBean responseBean = new ResponseBean();
|
||||
Status status = Status.OK;
|
||||
|
@ -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() {
|
||||
|
||||
|
@ -149,8 +145,8 @@ 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();
|
||||
|
@ -199,8 +195,8 @@ 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")
|
||||
|
@ -253,8 +249,8 @@ 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")
|
||||
|
@ -296,7 +292,7 @@ public class Posts {
|
|||
previewUrl,
|
||||
httpImageUrl,
|
||||
enableNotification
|
||||
);
|
||||
);
|
||||
|
||||
if(res != null){
|
||||
logger.debug("Post correctly written by user " + username);
|
||||
|
@ -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() {
|
||||
|
||||
|
@ -375,9 +371,9 @@ 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")
|
||||
|
@ -427,7 +423,7 @@ public class Posts {
|
|||
appProfile,
|
||||
caller,
|
||||
enableNotification
|
||||
);
|
||||
);
|
||||
|
||||
if(written != null){
|
||||
responseBean.setResult(written);
|
||||
|
@ -450,8 +446,8 @@ public class Posts {
|
|||
@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() {
|
||||
|
||||
|
@ -491,8 +487,8 @@ public class Posts {
|
|||
@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")
|
||||
|
@ -533,8 +529,8 @@ 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")
|
||||
|
@ -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() {
|
||||
|
||||
|
@ -610,8 +606,8 @@ 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")
|
||||
|
@ -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{
|
||||
|
|
Loading…
Reference in New Issue