aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java6
-rw-r--r--src/test/java/com/juick/tests/ApiTests.java4
2 files changed, 8 insertions, 2 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 767c62fc..decfe59d 100644
--- a/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java
+++ b/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java
@@ -58,14 +58,16 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip
User author = messagesService.getMessageAuthor(mid);
List<User> userids = userService.getUserReaders(uid);
+ List<Integer> tags = tagService.getMessageTagsIDs(mid);
+ List<String> tagsStr = tagService.getMessageTags(mid).stream().map(t -> t.getTag().getName()).collect(Collectors.toList());
Set<Integer> set = new HashSet<>();
set.addAll(
userids.stream()
- .map(User::getUid)
+ .map(User::getUid).filter(u -> Collections.disjoint(tagService.getUserBLTags(u), tagsStr))
.collect(Collectors.toList()));
- List<Integer> tags = tagService.getMessageTagsIDs(mid);
+
if (!tags.isEmpty()) {
List<Integer> tagUsers = getNamedParameterJdbcTemplate().queryForList(
"SELECT st.suser_id FROM subscr_tags st " +
diff --git a/src/test/java/com/juick/tests/ApiTests.java b/src/test/java/com/juick/tests/ApiTests.java
index 931838d7..6a945d4a 100644
--- a/src/test/java/com/juick/tests/ApiTests.java
+++ b/src/test/java/com/juick/tests/ApiTests.java
@@ -226,6 +226,10 @@ public class ApiTests {
juickProtocol.getReply(user, "#" + mid + " *there").getResult());
assertEquals("number of tags should match", 2,
tagService.getMessageTags(mid).size());
+ assertEquals("should be blacklisted", "Tag added to your blacklist",
+ juickProtocol.getReply(readerUser, "BL *there").getResult());
+ assertEquals("number of subscribed users should match", 0,
+ subscriptionService.getSubscribedUsers(uid, mid).size());
assertEquals("tags should be updated", "Tags are updated",
juickProtocol.getReply(user, "#" + mid + " *there").getResult());
assertEquals("number of tags should match", 1,