You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/01/23 00:28:43 UTC

[1/2] incubator-usergrid git commit: remove excess methods

Repository: incubator-usergrid
Updated Branches:
  refs/heads/USERGRID-323-Win-phone c3b2026af -> 1d003747c


remove excess methods


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/124b29b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/124b29b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/124b29b6

Branch: refs/heads/USERGRID-323-Win-phone
Commit: 124b29b6fe439fa2628a1be95906ccb53eedc85a
Parents: c3b2026
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Jan 22 15:44:02 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Jan 22 15:44:02 2015 -0700

----------------------------------------------------------------------
 .../Usergrid.Notifications/App.xaml             | 22 +++++++++++++++++++-
 .../Client/IUsergridClient.cs                   | 11 +---------
 .../Usergrid.Notifications/Client/PushClient.cs | 19 ++---------------
 .../Usergrid.Notifications/Client/Usergrid.cs   |  7 +++----
 .../Usergrid.Notifications/MainPage.xaml        |  4 ----
 .../Usergrid.Notifications/MainPage.xaml.cs     | 10 +--------
 .../impl/ApplicationQueueManagerImpl.java       |  8 +++++--
 .../services/notifications/wns/WNSAdapter.java  |  4 ++++
 8 files changed, 38 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/sdks/dotnet/samples/notifications/Usergrid.Notifications/App.xaml
----------------------------------------------------------------------
diff --git a/sdks/dotnet/samples/notifications/Usergrid.Notifications/App.xaml b/sdks/dotnet/samples/notifications/Usergrid.Notifications/App.xaml
index 8a36359..486a2fd 100644
--- a/sdks/dotnet/samples/notifications/Usergrid.Notifications/App.xaml
+++ b/sdks/dotnet/samples/notifications/Usergrid.Notifications/App.xaml
@@ -3,5 +3,25 @@
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:local="using:Usergrid.Notifications">
-
+<!--
+    /*
+ *
+ *  * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  *  contributor license agreements.  The ASF licenses this file to You
+ *  * under the Apache License, Version 2.0 (the "License"); you may not
+ *  * use this file except in compliance with the License.
+ *  * You may obtain a copy of the License at
+ *  *
+ *  *     http://www.apache.org/licenses/LICENSE-2.0
+ *  *
+ *  * Unless required by applicable law or agreed to in writing, software
+ *  * distributed under the License is distributed on an "AS IS" BASIS,
+ *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  * See the License for the specific language governing permissions and
+ *  * limitations under the License.  For additional information regarding
+ *  * copyright in this work, please see the NOTICE file in the top level
+ *  * directory of this distribution.
+ *
+ */
+    -->
 </Application>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/IUsergridClient.cs
----------------------------------------------------------------------
diff --git a/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/IUsergridClient.cs b/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/IUsergridClient.cs
index 96acf28..986b2a1 100644
--- a/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/IUsergridClient.cs
+++ b/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/IUsergridClient.cs
@@ -64,7 +64,7 @@ namespace Usergrid.Notifications.Client
     /// <summary>
     /// Only show http calls
     /// </summary>
-    public interface UsergridHttpClient
+    public interface IUsergridHttpClient
     {
         /// <summary>
         /// Send Http call async
@@ -91,15 +91,6 @@ namespace Usergrid.Notifications.Client
     public interface IPushClient
     {
         /// <summary>
-        /// Add a new notifier, admin function
-        /// </summary>
-        /// <param name="name"></param>
-        /// <param name="sid"></param>
-        /// <param name="apiKey"></param>
-        /// <returns></returns>
-        Task AddNotifier(string name, string sid, string apiKey);
-        
-        /// <summary>
         /// the notifier you are currently using
         /// </summary>
         string Notifier { get; set; }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/PushClient.cs
----------------------------------------------------------------------
diff --git a/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/PushClient.cs b/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/PushClient.cs
index 915349d..8d23823 100644
--- a/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/PushClient.cs
+++ b/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/PushClient.cs
@@ -32,11 +32,11 @@ namespace Usergrid.Notifications.Client
     public class PushClient : IPushClient
     {
         const string DEVICE_KEY = "currentDeviceId";
-        private UsergridHttpClient usergrid;
+        private IUsergridHttpClient usergrid;
         private ApplicationDataContainer settings;
         private PushNotificationChannel channel;
 
-        public PushClient(UsergridHttpClient usergrid)
+        public PushClient(IUsergridHttpClient usergrid)
         {
             this.usergrid = usergrid;
             this.settings = ApplicationData.Current.LocalSettings;
@@ -105,21 +105,6 @@ namespace Usergrid.Notifications.Client
             channel = channel != null ? channel : await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync().AsTask<PushNotificationChannel>();
         }
 
-        public async Task AddNotifier(string name, string sid, string apiKey)
-        {
-            JObject obj = new JObject();
-            obj.Add("name", new JValue(name));
-            obj.Add("sid", new JValue(sid));
-            obj.Add("provider", new JValue("windows"));
-            obj.Add("apiKey", new JValue(apiKey));
-            obj.Add("logging", new JValue(true));
-            var jsonResponse = await usergrid.SendAsync(HttpMethod.Post, "notifiers", obj);
-            if (jsonResponse.StatusIsOk)
-            {
-                var body = jsonResponse.GetValue("entities").ToString();
-            }
-        }
-
         private async Task<bool> DeviceExists(Guid deviceId)
         {
             var jsonResponse = await usergrid.SendAsync(HttpMethod.Get, "devices/" + deviceId, null);

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/Usergrid.cs
----------------------------------------------------------------------
diff --git a/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/Usergrid.cs b/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/Usergrid.cs
index 2f0adb0..a2d637d 100644
--- a/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/Usergrid.cs
+++ b/sdks/dotnet/samples/notifications/Usergrid.Notifications/Client/Usergrid.cs
@@ -30,7 +30,7 @@ namespace Usergrid.Notifications.Client
 {
     public class UsergridFactory
     {
-        public static async Task<IUsergridClient> GetInstance(string serverUrl, string org, string app)
+        public static  IUsergridClient GetInstance(string serverUrl, string org, string app)
         {
             return new Usergrid(serverUrl, org, app);
         }
@@ -40,7 +40,7 @@ namespace Usergrid.Notifications.Client
     /// <summary>
     /// Usergrid client 
     /// </summary>
-    internal class Usergrid : UsergridHttpClient, IUsergridClient
+    internal class Usergrid : IUsergridHttpClient, IUsergridClient
     {
         private string appUrl;
         private string token;
@@ -66,13 +66,12 @@ namespace Usergrid.Notifications.Client
 
         public async Task Authenticate(string user, string password, bool isManagement)
         {
-            var url = "token";
             var jsonObject = new JObject();
             jsonObject.Add("username", user);
             jsonObject.Add("password", password);
             jsonObject.Add("grant_type", "password");
            
-            var response = await SendAsync(HttpMethod.Post,url, jsonObject, isManagement);
+            var response = await SendAsync(HttpMethod.Post,"token", jsonObject, isManagement);
 
             if (response.StatusIsOk)
             {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml
----------------------------------------------------------------------
diff --git a/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml b/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml
index d64eea8..9dc6118 100644
--- a/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml
+++ b/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml
@@ -11,10 +11,6 @@
     <Grid>
         <TextBox x:Name="pushText" HorizontalAlignment="Left" Margin="75,46,0,0" TextWrapping="Wrap" Text="Push Text" VerticalAlignment="Top" Width="261" TextChanged="pushText_TextChanged"/>
         <Button x:Name="SendToast"  Content="Toast" HorizontalAlignment="Left" Margin="75,118,0,0" VerticalAlignment="Top" Click="Button_Click" Width="39"/>
-        <TextBox x:Name="NotifierName" HorizontalAlignment="Left" Margin="75,210,0,0" TextWrapping="Wrap" Text="Notifier Name" VerticalAlignment="Top" Width="261"/>
-        <TextBox x:Name="Api_Key" HorizontalAlignment="Left" Margin="75,276,0,0" TextWrapping="Wrap" Text="Sid" VerticalAlignment="Top" Width="261"/>
-        <TextBox x:Name="Sid" HorizontalAlignment="Left" Margin="75,348,0,0" TextWrapping="Wrap" Text="Api Key" VerticalAlignment="Top" Width="261"/>
-        <Button x:Name="AddNotifierButton" Content="Add Notifier" HorizontalAlignment="Left" Margin="146,405,0,0" VerticalAlignment="Top" Click="AddNotifierButton_Click"/>
         <Button x:Name="Badge" Content="Badge" HorizontalAlignment="Left" Margin="208,118,0,0" VerticalAlignment="Top" Click="Badge_Click"/>
 
     </Grid>

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml.cs
----------------------------------------------------------------------
diff --git a/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml.cs b/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml.cs
index ca191f7..7a13a54 100644
--- a/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml.cs
+++ b/sdks/dotnet/samples/notifications/Usergrid.Notifications/MainPage.xaml.cs
@@ -38,9 +38,6 @@ namespace Usergrid.Notifications
         private string org;
         private string app;
         private string notifier;
-        private string apiKey;
-        private string secret;
-        private Guid deviceId;
         public MainPage()
         {
             this.InitializeComponent();
@@ -55,7 +52,7 @@ namespace Usergrid.Notifications
 
         private async Task setup()
         {
-            usergrid = await Client.UsergridFactory.GetInstance(serverUrl, org, app);
+            usergrid = Client.UsergridFactory.GetInstance(serverUrl, org, app);
             await usergrid.Authenticate("superuser", "test", true);
             await usergrid.Push.RegisterDevice(notifier);
         }
@@ -81,11 +78,6 @@ namespace Usergrid.Notifications
 
         }
 
-        private async void AddNotifierButton_Click(object sender, RoutedEventArgs e)
-        {
-            await usergrid.Push.AddNotifier(NotifierName.Text,Sid.Text,Api_Key.Text);
-        }
-
         private async void Button_Click(object sender, RoutedEventArgs e)
         {
             var message = this.pushText.Text;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java b/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java
index c8c5165..8cc3450 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/notifications/impl/ApplicationQueueManagerImpl.java
@@ -396,15 +396,19 @@ public class ApplicationQueueManagerImpl implements ApplicationQueueManager {
 
 
     /**
-     * Call the adapter with the notifier
+     * Validates that a notifier and adapter exists to send notifications to;
+     * {"winphone":"mymessage","apple":"mymessage"}
+     * TODO: document this method better
      */
     private Map<String, Object> translatePayloads(Map<String, Object> payloads, Map<Object, ProviderAdapter> notifierMap) throws Exception {
         Map<String, Object> translatedPayloads = new HashMap<String, Object>(  payloads.size());
         for (Map.Entry<String, Object> entry : payloads.entrySet()) {
             String payloadKey = entry.getKey().toLowerCase();
             Object payloadValue = entry.getValue();
+            //look for adapter from payload map
             ProviderAdapter providerAdapter = notifierMap.get(payloadKey);
             if (providerAdapter != null) {
+                //translate payload to usable information
                 Object translatedPayload = payloadValue != null ? providerAdapter.translatePayload(payloadValue) : null;
                 if (translatedPayload != null) {
                     translatedPayloads.put(payloadKey, translatedPayload);
@@ -520,4 +524,4 @@ public class ApplicationQueueManagerImpl implements ApplicationQueueManager {
     }
 
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/124b29b6/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 e3f10d4..05b73d5 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
@@ -106,8 +106,10 @@ public class WNSAdapter implements ProviderAdapter {
 
     @Override
     public Object translatePayload(Object payload) throws Exception {
+        //TODO: allow for badges and toasts at same time
         TranslatedNotification translatedNotification = null;
         if (payload instanceof Map) {
+            //{payloads:{winphone:{toast:"mymessage",badge:1}}}
             Map<String, Object> map = (Map<String, Object>) payload;
             if(map.containsKey("toast")) {
                 translatedNotification = new TranslatedNotification( map.get("toast").toString(),"toast");
@@ -117,6 +119,8 @@ public class WNSAdapter implements ProviderAdapter {
                 }
             }
         } else {
+            //{payloads:{winphone:"mymessage"}}
+            //make it a toast if its just a string
             if (payload instanceof String) {
                 translatedNotification = new TranslatedNotification( (String) payload,"toast");
             }else{


[2/2] incubator-usergrid git commit: add multiple notifications

Posted by sf...@apache.org.
add multiple notifications


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/1d003747
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/1d003747
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/1d003747

Branch: refs/heads/USERGRID-323-Win-phone
Commit: 1d003747c479f1fb30a0a9c1b303f9e2da1cb208
Parents: 124b29b
Author: Shawn Feldman <sf...@apache.org>
Authored: Thu Jan 22 16:28:34 2015 -0700
Committer: Shawn Feldman <sf...@apache.org>
Committed: Thu Jan 22 16:28:34 2015 -0700

----------------------------------------------------------------------
 .../services/notifications/wns/WNSAdapter.java  | 55 +++++++++++---------
 1 file changed, 30 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/1d003747/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 05b73d5..227f633 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
@@ -26,6 +26,7 @@ import ar.com.fernandospr.wns.model.WnsBadge;
 import ar.com.fernandospr.wns.model.WnsToast;
 import ar.com.fernandospr.wns.model.builders.WnsBadgeBuilder;
 import ar.com.fernandospr.wns.model.builders.WnsToastBuilder;
+import com.sun.jersey.api.client.ClientHandlerException;
 import org.apache.usergrid.persistence.EntityManager;
 import org.apache.usergrid.persistence.entities.Notification;
 import org.apache.usergrid.persistence.entities.Notifier;
@@ -37,7 +38,9 @@ import org.mortbay.util.ajax.JSON;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -61,31 +64,33 @@ public class WNSAdapter implements ProviderAdapter {
     public void testConnection() throws ConnectionException {
         WnsToast toast = new WnsToastBuilder().bindingTemplateToastText01("test").build();
         try{
-            //this fails every time due to
+            //this fails every time due to jax error which is ok
             service.pushToast("s-1-15-2-2411381248-444863693-3819932088-4077691928-1194867744-112853457-373132695",toast);
-        }catch (Exception e){
-            LOG.error(e.toString());
+        }catch (ClientHandlerException e){
+            LOG.info("Windows Phone notifier added: "+e.toString());
         }
     }
 
     @Override
     public void sendNotification(String providerId, Object payload, Notification notification, TaskTracker tracker) throws Exception {
         try {
-            TranslatedNotification translatedNotification = (TranslatedNotification) payload;
-            switch (translatedNotification.type){
-                case "toast" :
-                    WnsToast toast = new WnsToastBuilder().bindingTemplateToastText01(translatedNotification.getPayload().toString()).build();
-                    service.pushToast(providerId, toast);
-                    break;
-                case "badge" :
-                    WnsBadge badge;
-                    if(translatedNotification.getPayload() instanceof Integer){
-                        badge = new WnsBadgeBuilder().value((Integer)translatedNotification.getPayload()).build();
-                    }else{
-                        badge = new WnsBadgeBuilder().value(translatedNotification.getPayload().toString()).build();
-                    }
-                    service.pushBadge(providerId,badge);
-                    break;
+            List<TranslatedNotification> translatedNotifications = ( List<TranslatedNotification>) payload;
+            for(TranslatedNotification translatedNotification : translatedNotifications) {
+                switch (translatedNotification.type) {
+                    case "toast":
+                        WnsToast toast = new WnsToastBuilder().bindingTemplateToastText01(translatedNotification.getPayload().toString()).build();
+                        service.pushToast(providerId, toast);
+                        break;
+                    case "badge":
+                        WnsBadge badge;
+                        if (translatedNotification.getPayload() instanceof Integer) {
+                            badge = new WnsBadgeBuilder().value((Integer) translatedNotification.getPayload()).build();
+                        } else {
+                            badge = new WnsBadgeBuilder().value(translatedNotification.getPayload().toString()).build();
+                        }
+                        service.pushBadge(providerId, badge);
+                        break;
+                }
             }
             tracker.completed();
         } catch (Exception e) {
@@ -107,27 +112,27 @@ public class WNSAdapter implements ProviderAdapter {
     @Override
     public Object translatePayload(Object payload) throws Exception {
         //TODO: allow for badges and toasts at same time
-        TranslatedNotification translatedNotification = null;
+        List<TranslatedNotification> translatedNotifications = new ArrayList<>();
         if (payload instanceof Map) {
             //{payloads:{winphone:{toast:"mymessage",badge:1}}}
             Map<String, Object> map = (Map<String, Object>) payload;
             if(map.containsKey("toast")) {
-                translatedNotification = new TranslatedNotification( map.get("toast").toString(),"toast");
-            }else{
+                translatedNotifications.add(new TranslatedNotification( map.get("toast").toString(),"toast"));
+            }
                 if(map.containsKey("badge")){
-                    translatedNotification = new TranslatedNotification( map.get("badge"),"badge");
+                    translatedNotifications.add(new TranslatedNotification( map.get("badge"),"badge"));
                 }
-            }
+
         } else {
             //{payloads:{winphone:"mymessage"}}
             //make it a toast if its just a string
             if (payload instanceof String) {
-                translatedNotification = new TranslatedNotification( (String) payload,"toast");
+                translatedNotifications.add(new TranslatedNotification( (String) payload,"toast"));
             }else{
                 throw new IllegalArgumentException("format is messed up");
             }
         }
-        return translatedNotification;
+        return translatedNotifications;
     }
 
     @Override