aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2017-01-16 14:20:20 +0300
committerGravatar Vitaly Takmazov2017-01-16 14:20:20 +0300
commitb1a81ad87c0803006965ca299103a5ec32be3056 (patch)
treee54b156db854fe3466ba1da6cb9d448607f63d42
parent35ee9c30865c2ccb349bb674c12eb2ef6cc05187 (diff)
juick-protocol: S command
-rw-r--r--juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java13
-rw-r--r--juick-server/src/main/java/com/juick/service/SubscriptionService.java2
-rw-r--r--juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java7
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=?",