From 8b58a29d9f2b6bb97077d9d41e8d49ddd11b45fd Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Thu, 9 Feb 2023 15:31:11 +0100 Subject: [PATCH] fixed unlike method --- .../networking/ws/inputs/LikeInputBean.java | 60 +++++++++++++++++++ .../social/networking/ws/inputs/PostId.java | 26 ++++---- .../networking/ws/methods/v2/Likes.java | 17 +++--- .../networking/ws/utils/SocialUtils.java | 4 +- 4 files changed, 85 insertions(+), 22 deletions(-) create mode 100644 src/main/java/org/gcube/portal/social/networking/ws/inputs/LikeInputBean.java diff --git a/src/main/java/org/gcube/portal/social/networking/ws/inputs/LikeInputBean.java b/src/main/java/org/gcube/portal/social/networking/ws/inputs/LikeInputBean.java new file mode 100644 index 0000000..e7508fc --- /dev/null +++ b/src/main/java/org/gcube/portal/social/networking/ws/inputs/LikeInputBean.java @@ -0,0 +1,60 @@ +package org.gcube.portal.social.networking.ws.inputs; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +import com.fasterxml.jackson.annotation.JsonProperty; + + +/** + * Like Bean object + */ +public class LikeInputBean { + + @JsonProperty("likeid") + @NotNull(message="likeid cannot be null") + @Size(message="likeid cannot be empty", min=1) + private String likeid; + + @JsonProperty("postid") + @NotNull(message="postid cannot be null") + @Size(message="postid cannot be empty", min=1) + private String postid; + + public LikeInputBean() { + super(); + } + + /** + * @param likeid + * @param postid + */ + public LikeInputBean(String likeid, String postid) { + super(); + this.likeid = likeid; + this.postid = postid; + } + + public String getLikeid() { + return likeid; + } + + public void setLikeid(String likeid) { + this.likeid = likeid; + } + + public String getPostid() { + return postid; + } + + public void setPostid(String postid) { + this.postid = postid; + } + + @Override + public String toString() { + return "LikeInputBean [likeid=" + likeid + ", postid=" + postid + "]"; + } + + +} diff --git a/src/main/java/org/gcube/portal/social/networking/ws/inputs/PostId.java b/src/main/java/org/gcube/portal/social/networking/ws/inputs/PostId.java index 58a770d..01a64c1 100644 --- a/src/main/java/org/gcube/portal/social/networking/ws/inputs/PostId.java +++ b/src/main/java/org/gcube/portal/social/networking/ws/inputs/PostId.java @@ -7,35 +7,37 @@ import com.fasterxml.jackson.annotation.JsonProperty; /** - * Post id object + * Application id object + */ -//@ApiModel(description="An object containing the app_id field", value="Application") public class PostId { - @JsonProperty("postid") - @NotNull(message="postid cannot be null") - @Size(message="postid cannot be empty", min=1) - private String postid; + @JsonProperty("postId") + @NotNull(message="postId cannot be null") + @Size(message="postId cannot be empty", min=1) + private String postId; public PostId() { super(); } - public PostId(String postid) { + public PostId(String postId) { super(); - this.postid = postid; + this.postId = postId; } public String getPostId() { - return postid; + return postId; } - public void setPostId(String postid) { - this.postid = postid; + public void setPostId(String postId) { + this.postId = postId; } @Override public String toString() { - return "PostId [postid=" + postid + "]"; + return "PostId [postId=" + postId + "]"; } + + } 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 f0cf240..0490a3f 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 @@ -20,6 +20,7 @@ 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.Like; +import org.gcube.portal.social.networking.ws.inputs.LikeInputBean; import org.gcube.portal.social.networking.ws.inputs.PostId; import org.gcube.portal.social.networking.ws.outputs.ResponseBean; import org.gcube.portal.social.networking.ws.utils.CassandraConnection; @@ -102,18 +103,18 @@ public class Likes { public Response like( @NotNull(message="Post to like is missing") @Valid - PostId postId) throws ValidationException { + PostId post) throws ValidationException { Caller caller = AuthorizationProvider.instance.get(); String username = caller.getClient().getId(); logger.debug("Request of like coming from user " + username); String context = ScopeProvider.instance.get(); ResponseBean responseBean = new ResponseBean(); Status status = Status.OK; - boolean likeResultOperation = SocialUtils.like(username, postId.getPostId(), context); + boolean likeResultOperation = SocialUtils.like(username, post.getPostId(), context); if (likeResultOperation) - logger.info("Added like OK to postId " + postId.getPostId()); + logger.info("Added like OK to postId " + post.getPostId()); else { - logger.error("Unable to like this post"+ postId.getPostId()); + logger.error("Unable to like this post"+ post.getPostId()); responseBean.setMessage("Unable to like, something went wrong please see server log"); responseBean.setSuccess(false); status = Status.INTERNAL_SERVER_ERROR; @@ -142,17 +143,17 @@ public class Likes { public Response unlike( @NotNull(message="Post to unlike is missing") @Valid - PostId postId) throws ValidationException { + LikeInputBean likeInputBean) throws ValidationException { Caller caller = AuthorizationProvider.instance.get(); String username = caller.getClient().getId(); logger.debug("Request of unlike coming from user " + username); ResponseBean responseBean = new ResponseBean(); Status status = Status.OK; - boolean likeResultOperation = SocialUtils.unlike(username, postId.getPostId()); + boolean likeResultOperation = SocialUtils.unlike(username, likeInputBean.getLikeid(), likeInputBean.getPostid()); if (likeResultOperation) - logger.info("Unlike OK to postId " + postId.getPostId()); + logger.info("Unlike OK to postId " + likeInputBean.getPostid()); else { - logger.error("Unable to unlike this post"+ postId.getPostId()); + logger.error("Unable to unlike this post"+ likeInputBean.getPostid()); responseBean.setMessage("Unable to unlike, something went wrong please see server log"); responseBean.setSuccess(false); status = Status.INTERNAL_SERVER_ERROR; diff --git a/src/main/java/org/gcube/portal/social/networking/ws/utils/SocialUtils.java b/src/main/java/org/gcube/portal/social/networking/ws/utils/SocialUtils.java index eebbcb0..60996f0 100644 --- a/src/main/java/org/gcube/portal/social/networking/ws/utils/SocialUtils.java +++ b/src/main/java/org/gcube/portal/social/networking/ws/utils/SocialUtils.java @@ -698,7 +698,7 @@ public class SocialUtils { return likeCommitResult && resultNotifyLike; } - public static boolean unlike(String username, String postid) { + public static boolean unlike(String username, String likeid, String postid) { boolean unlikeCommitResult = false; // retrieve user information GCubeUser user; @@ -713,7 +713,7 @@ public class SocialUtils { String thumbnailURL = user.getUserAvatarURL(); try { - unlikeCommitResult = CassandraConnection.getInstance().getDatabookStore().unlike(username, fullName, thumbnailURL); + unlikeCommitResult = CassandraConnection.getInstance().getDatabookStore().unlike(username, likeid, postid); } catch (Exception e) { logger.error("Post not Found for this like ot could not unlike the post " + e.getMessage()); return false;