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;
     }
+
 }