diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java index 817bc3a..c6140ad 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java @@ -303,8 +303,7 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService return null; } - _log.info("****** retrieving feeds for user: " + userName); - + String lowerCaseHashtag = hashtag.toLowerCase(); /** * this handles the case where the portlet is deployed outside of VREs (regular) */ @@ -314,11 +313,9 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService for (Organization org : currUser.getOrganizations()) { GroupManager gm = new LiferayGroupManager(); if (gm.isVRE(org.getOrganizationId()+"")) { - String vreid = gm.getScope(""+org.getOrganizationId()); //get the scope - _log.debug("Reading hastagged feeds for VRE: " + vreid + " hashtag=" + hashtag); - - ArrayList OrganizationFeeds = (ArrayList) store.getVREFeedsByHashtag(vreid, hashtag); - for (Feed feed : OrganizationFeeds) { + String vreid = gm.getScope(""+org.getOrganizationId()); //get the scope + ArrayList feeds = (ArrayList) store.getVREFeedsByHashtag(vreid, lowerCaseHashtag); + for (Feed feed : feeds) { feedsMap.put(feed.getKey(), feed); } } @@ -327,9 +324,8 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService //else must be in a VRE scope else { String vreid = session.getScopeName(); - _log.trace("News Feed in VRE, Reading feeds for VRE: " + vreid); - ArrayList OrganizationFeeds = (ArrayList) store.getVREFeedsByHashtag(vreid, hashtag); - for (Feed feed : OrganizationFeeds) { + ArrayList feeds = (ArrayList) store.getVREFeedsByHashtag(vreid, lowerCaseHashtag); + for (Feed feed : feeds) { feedsMap.put(feed.getKey(), feed); } } @@ -364,6 +360,8 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService } return null; } + + /** * return only the user connection feeds */ @@ -809,7 +807,7 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService } _log.trace("Attempting to delete feed " + feedid); return store.deleteFeed(feedid); - + } catch (Exception e) { e.printStackTrace(); return false; diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java index dbea21c..5a532c2 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/Utils.java @@ -180,4 +180,43 @@ public class Utils { } return null; } + + /** +// * +// * @param vreid +// * @param hashtag +// * @return the feed map for the client containing occurrences of the hashtag +// * @throws PrivacyLevelTypeNotFoundException +// * @throws FeedTypeNotFoundException +// * @throws FeedIDNotFoundException +// * @throws ColumnNameNotFoundException +// */ +// private HashMap getFeedsMap(String vreid, String hashtag) throws PrivacyLevelTypeNotFoundException, FeedTypeNotFoundException, FeedIDNotFoundException, ColumnNameNotFoundException { +// if (hashtag.length() < 2) +// throw new IllegalArgumentException("Hashtag length myst be greater than 1"); +// else { +// HashMap feedsMap = new HashMap(); +// String upperCase = hashtag; +// String lowerCase = hashtag; +// +// char afterHashtag = hashtag.charAt(1); +// if (Character.isUpperCase(afterHashtag)) { +// upperCase = hashtag; +// lowerCase =hashtag.substring(0,1)+Character.toLowerCase(afterHashtag)+hashtag.substring(2); +// } else { +// upperCase =hashtag.substring(0,1)+Character.toUpperCase(afterHashtag)+hashtag.substring(2); +// lowerCase = hashtag; +// } +// +// ArrayList lowerCaseFeeds = (ArrayList) store.getVREFeedsByHashtag(vreid, lowerCase); +// for (Feed feed : lowerCaseFeeds) { +// feedsMap.put(feed.getKey(), feed); +// } +// ArrayList upperCaseFeeds = (ArrayList) store.getVREFeedsByHashtag(vreid, upperCase); +// for (Feed feed : upperCaseFeeds) { +// feedsMap.put(feed.getKey(), feed); +// } +// return feedsMap; +// } +// } }