diff options
author | 2017-01-16 14:20:20 +0300 | |
---|---|---|
committer | 2017-01-16 14:20:20 +0300 | |
commit | b1a81ad87c0803006965ca299103a5ec32be3056 (patch) | |
tree | e54b156db854fe3466ba1da6cb9d448607f63d42 /juick-server | |
parent | 35ee9c30865c2ccb349bb674c12eb2ef6cc05187 (diff) |
juick-protocol: S command
Diffstat (limited to 'juick-server')
3 files changed, 22 insertions, 0 deletions
diff --git a/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java b/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java index be68fe62..06fbf2fc 100644 --- a/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java +++ b/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java @@ -198,6 +198,19 @@ public class JuickProtocol { return new ProtocolReply(msg); } + @UserCommand(pattern = "S", help = "S - Show your subscriptions") + public ProtocolReply commandSubscriptions(User currentUser, String... args) { + List<User> friends = userService.getUserFriends(currentUser.getUid()); + List<String> tags = subscriptionService.getSubscribedTags(currentUser); + String msg = friends.size() > 0 ? "You are subscribed to users:" + friends.stream().map(u -> "\n@" + u.getName()) + .collect(Collectors.joining()) + : "You are not subscribed to any user."; + msg += tags.size() > 0 ? "\nYou are subscribed to tags:" + tags.stream().map(t -> "\n*" + t) + .collect(Collectors.joining()) + : "\nYou are not subscribed to any tag."; + return new ProtocolReply(msg); + } + @UserCommand(pattern = "!", help = "! - Show your favorite messages") public ProtocolReply commandFavorites(User currentUser, String... args) { List<Integer> mids = messagesService.getUserRecommendations(currentUser.getUid(), 0); diff --git a/juick-server/src/main/java/com/juick/service/SubscriptionService.java b/juick-server/src/main/java/com/juick/service/SubscriptionService.java index 00aee15d..074c73f5 100644 --- a/juick-server/src/main/java/com/juick/service/SubscriptionService.java +++ b/juick-server/src/main/java/com/juick/service/SubscriptionService.java @@ -30,6 +30,8 @@ public interface SubscriptionService { boolean unSubscribeTag(User user, Tag toTag); + List<String> getSubscribedTags(User user); + NotifyOpts getNotifyOptions(User user); boolean setNotifyOptions(User user, NotifyOpts options); 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 4082e1ef..ae4af9df 100644 --- a/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java +++ b/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java @@ -173,6 +173,13 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip @Transactional(readOnly = true) @Override + public List<String> getSubscribedTags(User user) { + return getJdbcTemplate().queryForList("SELECT tags.name FROM subscr_tags INNER JOIN tags USING(tag_id) " + + "WHERE subscr_tags.suser_id=? ORDER BY tags.name", String.class, user.getUid()); + } + + @Transactional(readOnly = true) + @Override public NotifyOpts getNotifyOptions(final User user) { List<NotifyOpts> list = getJdbcTemplate().query( "SELECT jnotify,subscr_notify,recommendations FROM useroptions WHERE user_id=?", |