aboutsummaryrefslogtreecommitdiff
path: root/juick-notifications/src/main/java/com/juick/components
diff options
context:
space:
mode:
Diffstat (limited to 'juick-notifications/src/main/java/com/juick/components')
-rw-r--r--juick-notifications/src/main/java/com/juick/components/Notifications.java28
-rw-r--r--juick-notifications/src/main/java/com/juick/components/mpns/MPNSError.java29
-rw-r--r--juick-notifications/src/main/java/com/juick/components/mpns/MPNSToken.java29
3 files changed, 74 insertions, 12 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 cb120ce9..e0155a0a 100644
--- a/juick-notifications/src/main/java/com/juick/components/Notifications.java
+++ b/juick-notifications/src/main/java/com/juick/components/Notifications.java
@@ -17,8 +17,10 @@
*/
package com.juick.components;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.android.gcm.server.*;
-import com.juick.json.MessageSerializer;
+import com.juick.components.mpns.MPNSError;
+import com.juick.components.mpns.MPNSToken;
import com.notnoop.apns.APNS;
import com.notnoop.apns.ApnsService;
import org.apache.commons.lang3.StringEscapeUtils;
@@ -35,7 +37,6 @@ import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.http.util.TextUtils;
-import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.ParameterizedTypeReference;
@@ -71,6 +72,8 @@ public class Notifications implements AutoCloseable {
private final int xmppPort;
private final String xmppPushPassword;
+ private final ObjectMapper mapper;
+
@Inject
private ApnsService apns;
@@ -84,6 +87,7 @@ public class Notifications implements AutoCloseable {
xmppHost = env.getProperty("xmpp_host", "localhost");
xmppPort = NumberUtils.toInt(env.getProperty("xmpp_port"), 5347);
xmppPushPassword = env.getProperty("push_xmpp_password", "");
+ mapper = new ObjectMapper();
}
@PostConstruct
@@ -114,11 +118,11 @@ public class Notifications implements AutoCloseable {
}
if (!regids.isEmpty()) {
- MessageSerializer messageSerializer = new MessageSerializer();
- String json = messageSerializer.serialize(jmsg).toString();
- logger.info(json);
- Message message = new Message.Builder().addData("message", json).build();
try {
+ ObjectMapper messageSerializer = new ObjectMapper();
+ String json = messageSerializer.writeValueAsString(jmsg);
+ logger.info(json);
+ Message message = new Message.Builder().addData("message", json).build();
MulticastResult result = GCMSender.send(message, regids, 3);
List<Result> results = result.getResults();
for (int i = 0; i < results.size(); i++) {
@@ -238,15 +242,15 @@ public class Notifications implements AutoCloseable {
HttpResponse response = client.execute(httppost);
int statusCode = response.getStatusLine().getStatusCode();
String responseContent = EntityUtils.toString(response.getEntity(), Consts.UTF_8);
- JSONObject json = new JSONObject(responseContent);
if (statusCode != 200) {
- throw new IOException(json.opt("error") + ": " + json.opt("error_description"));
+ MPNSError error = mapper.readValue(responseContent, MPNSError.class);
+ throw new IOException(error.getError() + ": " + error.getErrorDescription());
}
- String tokenType = (String) json.get("token_type");
- if (tokenType.length() >= 1) {
- tokenType = Character.toUpperCase(tokenType.charAt(0)) + tokenType.substring(1);
+ MPNSToken token = mapper.readValue(responseContent, MPNSToken.class);
+ if (token.getTokenType().length() >= 1) {
+ token.setTokenType(Character.toUpperCase(token.getTokenType().charAt(0)) + token.getTokenType().substring(1));
}
- return tokenType + " " + json.get("access_token");
+ return token.getTokenType() + " " + token.getAccessToken();
}
void sendWNS(final String wnsToken, final String url, final String xml) throws IOException {
diff --git a/juick-notifications/src/main/java/com/juick/components/mpns/MPNSError.java b/juick-notifications/src/main/java/com/juick/components/mpns/MPNSError.java
new file mode 100644
index 00000000..de27641e
--- /dev/null
+++ b/juick-notifications/src/main/java/com/juick/components/mpns/MPNSError.java
@@ -0,0 +1,29 @@
+package com.juick.components.mpns;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by vitalyster on 28.11.2016.
+ */
+public class MPNSError {
+ private String error;
+ private String errorDescription;
+
+ @JsonProperty("error")
+ public String getError() {
+ return error;
+ }
+
+ public void setError(String error) {
+ this.error = error;
+ }
+
+ @JsonProperty("error_description")
+ public String getErrorDescription() {
+ return errorDescription;
+ }
+
+ public void setErrorDescription(String errorDescription) {
+ this.errorDescription = errorDescription;
+ }
+}
diff --git a/juick-notifications/src/main/java/com/juick/components/mpns/MPNSToken.java b/juick-notifications/src/main/java/com/juick/components/mpns/MPNSToken.java
new file mode 100644
index 00000000..68baf9cd
--- /dev/null
+++ b/juick-notifications/src/main/java/com/juick/components/mpns/MPNSToken.java
@@ -0,0 +1,29 @@
+package com.juick.components.mpns;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Created by vitalyster on 28.11.2016.
+ */
+public class MPNSToken {
+ private String tokenType;
+ private String accessToken;
+
+ @JsonProperty("token_type")
+ public String getTokenType() {
+ return tokenType;
+ }
+
+ public void setTokenType(String tokenType) {
+ this.tokenType = tokenType;
+ }
+
+ @JsonProperty("access_token")
+ public String getAccessToken() {
+ return accessToken;
+ }
+
+ public void setAccessToken(String accessToken) {
+ this.accessToken = accessToken;
+ }
+}