Skip to content

Instantly share code, notes, and snippets.

@sasajib
Created March 20, 2016 07:20
Show Gist options
  • Save sasajib/029a5bd4c11c1a88fe52 to your computer and use it in GitHub Desktop.
Save sasajib/029a5bd4c11c1a88fe52 to your computer and use it in GitHub Desktop.
public ServiceResponse update(ServiceRequest request)
{
final UserFeedPostDAO feedPostDAO = UserFeedPostDAO.newInstance();
final UserFeedPost userFeedPost = (UserFeedPost) request.getDataAsObject();
final UserFeedPost dbFeedPost = feedPostDAO.findByID(userFeedPost.getId());
Integer sessionUserID = request.getUser().getUserId();
List<Integer> roleList = Permission.getRolesByUID(sessionUserID);
updatedSummary(userFeedPost);
if (!Permission.isPostOwner(sessionUserID, userFeedPost.getUserId())) {
return validatePermittedGroupAndGetUpdateResponse(feedPostDAO, userFeedPost, roleList);
} else if (isBlogger(roleList)) {
feedPostDAO.update(userFeedPost);
return getUpdateSuccessfulResponse(USER_FEED_POST, userFeedPost);
} else {
setStatus(userFeedPost, dbFeedPost, request.getUser());
feedPostDAO.update(userFeedPost);
return getUpdateSuccessfulResponse(USER_FEED_POST, userFeedPost);
}
}
private void setStatus(final UserFeedPost userFeedPost, final UserFeedPost dbFeedPost, UserSession user)
{
if (Objects.equals(dbFeedPost.getStatus(), UserFeed.Status.DECLINED)) {
userFeedPost.setStatus(UserFeed.Status.DECLINED);
} else if (Objects.equals(dbFeedPost.getStatus(), UserFeed.Status.PUBLISHED) && Objects.equals(userFeedPost.getStatus(), UserFeed.Status.UNPUBLISHED)) {
userFeedPost.setStatus(UserFeed.Status.UNPUBLISHED_REQUEST);
sendNotificationToAdminGroup(getUnpublishedRequestMessage(user.getFullName(), userFeedPost), NotificationConstants.Level.SUCCESS);
} else if (Objects.equals(dbFeedPost.getStatus(), UserFeed.Status.DRAFT) && Objects.equals(userFeedPost.getStatus(), UserFeed.Status.PUBLISHED)) {
userFeedPost.setStatus(UserFeed.Status.APPROVE_REQUEST);
sendNotificationToAdminGroup(getPublishedRequestMessage(user.getFullName(), userFeedPost), NotificationConstants.Level.SUCCESS);
} else {
userFeedPost.setStatus(dbFeedPost.getStatus());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment