aboutsummaryrefslogtreecommitdiff
path: root/juick-notifications/src/main/java/com/juick/components/Notifications.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-notifications/src/main/java/com/juick/components/Notifications.java')
-rw-r--r--juick-notifications/src/main/java/com/juick/components/Notifications.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/juick-notifications/src/main/java/com/juick/components/Notifications.java b/juick-notifications/src/main/java/com/juick/components/Notifications.java
index 0a315f76..f0ab3b81 100644
--- a/juick-notifications/src/main/java/com/juick/components/Notifications.java
+++ b/juick-notifications/src/main/java/com/juick/components/Notifications.java
@@ -19,7 +19,8 @@ package com.juick.components;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.android.gcm.server.*;
-import com.juick.TokensList;
+import com.juick.DeviceRegistration;
+import com.juick.User;
import com.notnoop.apns.APNS;
import com.notnoop.apns.ApnsService;
import org.apache.commons.lang3.math.NumberUtils;
@@ -72,29 +73,29 @@ public class Notifications implements NotificationClientListener, AutoCloseable
boolean isReply = jmsg.getRid() > 0;
int pmTo = NumberUtils.toInt(msg.getTo().getLocal(), 0);
- final List<TokensList> tokensList = new ArrayList<>();
+ final List<User> users = new ArrayList<>();
if (isPM) {
- tokensList.addAll(rest.exchange(String.format("http://api.juick.com/notifications?type=gcm&uid=%d",
+ users.addAll(rest.exchange(String.format("http://api.juick.com/notifications?uid=%d",
pmTo),
- HttpMethod.GET, null, new ParameterizedTypeReference<List<TokensList>>() {
+ HttpMethod.GET, null, new ParameterizedTypeReference<List<User>>() {
}).getBody());
} else {
if (isReply) {
- tokensList.addAll(rest.exchange(String.format("http://api.juick.com/notifications?type=gcm&uid=%d&mid=%d&rid=%d",
+ users.addAll(rest.exchange(String.format("http://api.juick.com/notifications?uid=%d&mid=%d&rid=%d",
jmsg.getUser().getUid(), jmsg.getMid(), jmsg.getRid()),
- HttpMethod.GET, null, new ParameterizedTypeReference<List<TokensList>>() {
+ HttpMethod.GET, null, new ParameterizedTypeReference<List<User>>() {
}).getBody());
} else {
- tokensList.addAll(rest.exchange(String.format("http://api.juick.com/notifications?type=gcm&uid=%s&mid=%s",
+ users.addAll(rest.exchange(String.format("http://api.juick.com/notifications?uid=%s&mid=%s",
jmsg.getUser().getUid(), jmsg.getMid()),
- HttpMethod.GET, null, new ParameterizedTypeReference<List<TokensList>>() {
+ HttpMethod.GET, null, new ParameterizedTypeReference<List<User>>() {
}).getBody());
}
}
// GCM
- List<String> regids = tokensList.stream().filter(t -> t.getType().equals("gcm"))
- .flatMap(t -> t.getTokens().stream()).collect(Collectors.toList());
+ List<String> regids = users.stream().flatMap(u -> u.getDevices().stream()).filter(d -> d.getType().equals("gcm"))
+ .map(DeviceRegistration::getToken).collect(Collectors.toList());
if (!regids.isEmpty()) {
try {
String json = jsonMapper.writeValueAsString(jmsg);
@@ -124,8 +125,8 @@ public class Notifications implements NotificationClientListener, AutoCloseable
}
/*** WinPhone ***/
- List<String> urls = tokensList.stream().filter(t -> t.getType().equals("mpns"))
- .flatMap(t -> t.getTokens().stream()).collect(Collectors.toList());
+ List<String> urls = users.stream().flatMap(u -> u.getDevices().stream()).filter(d -> d.getType().equals("mpns"))
+ .map(DeviceRegistration::getToken).collect(Collectors.toList());
if (urls.isEmpty()) {
logger.info("WNS: no recipients");
@@ -160,8 +161,8 @@ public class Notifications implements NotificationClientListener, AutoCloseable
}
/*** iOS ***/
- List<String> tokens = tokensList.stream().filter(t -> t.getType().equals("apns"))
- .flatMap(t -> t.getTokens().stream()).collect(Collectors.toList());
+ List<String> tokens = users.stream().flatMap(u -> u.getDevices().stream()).filter(d -> d.getType().equals("apns"))
+ .map(DeviceRegistration::getToken).collect(Collectors.toList());
if (!tokens.isEmpty()) {
for (String token : tokens) {
String payload = APNS.newPayload().alertTitle("@" + jmsg.getUser().getName()).alertBody(jmsg.getText()).build();