aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-08-15 15:05:42 +0300
committerGravatar Vitaly Takmazov2018-08-15 15:05:42 +0300
commit5518faa7d7c28ae2a996fe057e7747d3b307c749 (patch)
tree3c896e81e9f209e6f4ce84786c2a1c51e3c10f9a /juick-server/src
parente2750a57b9405522102fc6ad083e738f3f389249 (diff)
Recommendation subscribers should not contain message author
Diffstat (limited to 'juick-server/src')
-rw-r--r--juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java8
-rw-r--r--juick-server/src/test/java/com/juick/server/tests/ServerTests.java19
2 files changed, 15 insertions, 12 deletions
diff --git a/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java b/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java
index e8c32e77..1dee379f 100644
--- a/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java
+++ b/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java
@@ -113,12 +113,12 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
}
@Override
- public List<User> getUsersSubscribedToUserRecommendations(final int uid, final int mid, final int muid) {
- Message msg = messagesService.getMessage(mid);
- List<String> msgTags = tagService.getMessageTags(mid).stream().map(t -> t.getTag().getName()).collect(Collectors.toList());
+ public List<User> getUsersSubscribedToUserRecommendations(final int uid, final Message msg) {
+ List<String> msgTags = tagService.getMessageTags(msg.getMid()).stream().map(t -> t.getTag().getName()).collect(Collectors.toList());
if (msg.getLikes() == 1) {
return userService.getUserReaders(uid).stream()
- .filter(u -> !userService.isInBLAny(u.getUid(), muid))
+ .filter(u -> !u.equals(msg.getUser()))
+ .filter(u -> !userService.isInBLAny(u.getUid(), msg.getUser().getUid()))
.filter(u -> Collections.disjoint(tagService.getUserBLTags(u.getUid()), msgTags))
.collect(Collectors.toList());
}
diff --git a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
index 646e1443..297a3c88 100644
--- a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
+++ b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
@@ -1183,21 +1183,24 @@ public class ServerTests {
Tag sampleTag = tagService.getTag("banned", true);
int posterMid = messagesService.createMessage(posterId, "YO", null, Collections.singletonList(sampleTag));
messagesService.recommendMessage(posterMid, recommenderId);
- BiFunction<Integer, Integer, List<User>> subscribers = (recommId, msgId) ->
- subscriptionService.getUsersSubscribedToUserRecommendations(recommId, msgId, posterId);
- List<User> recommendSubscribers = subscribers.apply(recommenderId, posterMid);
+ BiFunction<Integer, Message, List<User>> subscribers = (recommId, msg) ->
+ subscriptionService.getUsersSubscribedToUserRecommendations(recommId, msg);
+ List<User> recommendSubscribers = subscribers.apply(recommenderId, messagesService.getMessage(posterMid));
assertThat(recommendSubscribers.size(), is(1));
assertThat(recommendSubscribers.get(0).getUid(), is(readerId));
privacyQueriesService.blacklistUser(reader, poster);
- assertThat(subscribers.apply(recommenderId, posterMid).size(), is(0));
+ assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(0));
privacyQueriesService.blacklistUser(reader, poster);
- assertThat(subscribers.apply(recommenderId, posterMid).size(), is(1));
+ assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(1));
tagService.blacklistTag(reader, sampleTag);
- assertThat(subscribers.apply(recommenderId, posterMid).size(), is(0));
+ assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(0));
tagService.blacklistTag(reader, sampleTag);
- assertThat(subscribers.apply(recommenderId, posterMid).size(), is(1));
+ assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(1));
messagesService.recommendMessage(posterMid, lateRecommenderId);
- List<User> lateRecommendSubscribers = subscribers.apply(recommenderId, posterMid);
+ List<User> lateRecommendSubscribers = subscribers.apply(recommenderId, messagesService.getMessage(posterMid));
assertThat(lateRecommendSubscribers.size(), is(0));
+ int readerMid = messagesService.createMessage(readerId, "PEOPLE", null, null);
+ messagesService.recommendMessage(readerMid, recommenderId);
+ assertThat(subscribers.apply(recommenderId, messagesService.getMessage(readerMid)).size(), is(0));
}
}