You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/02/11 22:18:15 UTC
[06/25] incubator-usergrid git commit: Working windows phone toasts
Working windows phone toasts
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/74ea17e7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/74ea17e7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/74ea17e7
Branch: refs/heads/USERGRID-273
Commit: 74ea17e7072f45064f83eeed6142bd7b9c464681
Parents: 6e01907
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jan 21 16:35:56 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jan 21 16:35:56 2015 -0700
----------------------------------------------------------------------
.../services/notifications/wns/WNSAdapter.java | 62 +++++++++++++++++---
1 file changed, 54 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/74ea17e7/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
index 6dcf67c..b331e86 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/wns/WNSAdapter.java
@@ -21,6 +21,9 @@
package org.apache.usergrid.services.notifications.wns;
import ar.com.fernandospr.wns.WnsService;
+import ar.com.fernandospr.wns.exceptions.WnsException;
+import ar.com.fernandospr.wns.model.WnsToast;
+import ar.com.fernandospr.wns.model.builders.WnsToastBuilder;
import org.apache.usergrid.persistence.EntityManager;
import org.apache.usergrid.persistence.entities.Notification;
import org.apache.usergrid.persistence.entities.Notifier;
@@ -28,29 +31,50 @@ import org.apache.usergrid.services.ServicePayload;
import org.apache.usergrid.services.notifications.ConnectionException;
import org.apache.usergrid.services.notifications.ProviderAdapter;
import org.apache.usergrid.services.notifications.TaskTracker;
+import org.mortbay.util.ajax.JSON;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.Map;
/**
* Windows Notifications Service adapter to send windows notifications
*/
public class WNSAdapter implements ProviderAdapter {
+ private static final Logger LOG = LoggerFactory.getLogger(WNSAdapter.class);
private final EntityManager entityManager;
-
+ private final Notifier notifier;
+ private final WnsService service;
public WNSAdapter(EntityManager entityManager, Notifier notifier) {
this.entityManager = entityManager;
- WnsService service = new WnsService(notifier.getSid(), notifier.getApiKey(), notifier.getLogging());
+ this.notifier = notifier;
+ this.service = new WnsService(notifier.getSid(), notifier.getApiKey(), notifier.getLogging());
}
@Override
public void testConnection() throws ConnectionException {
-
+ WnsToast toast = new WnsToastBuilder().bindingTemplateToastText01("test").build();
+ try{
+ service.pushToast("ms-app://s-1-15-2-2411381248-444863693-3819932088-4077691928-1194867744-112853457-373132695",toast);
+ }catch (Exception e){
+ LOG.error(e.toString());
+ }
}
@Override
public void sendNotification(String providerId, Object payload, Notification notification, TaskTracker tracker) throws Exception {
-
+ try {
+ WnsToast toast = new WnsToastBuilder().bindingTemplateToastText01(payload.toString()).build();
+ service.pushToast(providerId, toast);
+ tracker.completed();
+ } catch (Exception e) {
+ tracker.failed(0,e.toString());
+ LOG.error("Failed to send notification",e);
+ }
}
@Override
@@ -65,21 +89,43 @@ public class WNSAdapter implements ProviderAdapter {
@Override
public Object translatePayload(Object payload) throws Exception {
- return null;
+ String toast = "";
+ if (payload instanceof Map) {
+ toast = ((Map<String, Object>) payload).get("toast").toString();
+ } else {
+ if (payload instanceof String) {
+ toast = (String) payload;
+ }else{
+ throw new IllegalArgumentException("format is messed up");
+ }
+ }
+ return toast;
}
@Override
public void validateCreateNotifier(ServicePayload payload) throws Exception {
-
+ String apiKey = payload.getStringProperty("apiKey");
+ String sid = payload.getStringProperty("sid");
+ Object logging = payload.getProperty("logging");
+ if(sid == null){
+ throw new IllegalArgumentException("sid is missing");
+ }
+ if(logging == null){
+ throw new IllegalArgumentException("logging is missing");
+ }
+ if(apiKey == null){
+ throw new IllegalArgumentException("apiKey is missing");
+ }
}
@Override
public void stop() {
-
+ //Do nothing
}
@Override
public Notifier getNotifier() {
- return null;
+ return notifier;
}
+
}