You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by ra...@apache.org on 2017/04/12 16:12:32 UTC

[incubator-openwhisk-package-pushnotifications] branch master updated: Updated the package with latest features in push service (#69)

This is an automated email from the ASF dual-hosted git repository.

rabbah pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-package-pushnotifications.git

The following commit(s) were added to refs/heads/master by this push:
       new  2cc5709   Updated the package with latest features in push service (#69)
2cc5709 is described below

commit 2cc57091171102e1b460d0536219c7c5ad50793e
Author: Anantha Krishnan K G <An...@users.noreply.github.com>
AuthorDate: Wed Apr 12 21:42:30 2017 +0530

    Updated the package with latest features in push service (#69)
---
 README.md                       |  74 ++++++++++++++++---------
 packages/actions/sendMessage.js | 119 ++++++++++++++++++++++++++++++++++++++--
 packages/feeds/webhook.js       |   1 -
 3 files changed, 163 insertions(+), 31 deletions(-)

diff --git a/README.md b/README.md
index f0b55c7..3dbe7d1 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ The package includes the following action and feed:
 | Entity | Type | Parameters | Description |
 | --- | --- | --- | --- |
 | `/whisk.system/pushnotifications` | package | appId, appSecret  | Work with the Push Service |
-| `/whisk.system/pushnotifications/sendMessage` | action | text, url, deviceIds, platforms, tagNames, gcmPayload, gcmSound, gcmCollapseKey, gcmDelayWhileIdle, gcmPriority, gcmTimeToLive, gcmSync, gcmVisibility, gcmStyleType, gcmStyleTitle, gcmStyleUrl, gcmStyleText, gcmStyleLines, apnsBadge, apnsCategory, apnsIosActionKey, apnsPayload, apnsType, apnsSound, fireFoxTitle, fireFoxIconUrl, fireFoxTimeToLive, fireFoxPayload, chromeTitle, chromeIconUrl, chromeTimeToLive, chromePayload, chromeA [...]
+| `/whisk.system/pushnotifications/sendMessage` | action | text, url, deviceIds, platforms, userIds, tagNames, gcmCollapseKey, gcmCategory, gcmIcon, gcmDelayWhileIdle, gcmSync, gcmVisibility, gcmPayload, gcmPriority, gcmSound, gcmTimeToLive, gcmStyleType, gcmStyleTitle, gcmStyleUrl, gcmStyleText, gcmStyleLines, gcmLightsLedArgb, gcmLightsLedOnMs, gcmLightsLedOffMs, apnsBadge, apnsCategory, apnsIosActionKey, apnsPayload, apnsType, apnsSound, apnsTitleLocKey, apnsLocKey, apnsLaunchImage, a [...]
 | `/whisk.system/pushnotifications/webhook` | feed | events | Fire trigger events on device activities (device registration, unregistration, subscription, or unsubscription) on the Push service |
 Creating a package binding with the `appId` and `appSecret` values is suggested. This way, you don't need to specify these credentials every time you invoke the actions in the package.
 
@@ -27,17 +27,17 @@ The following is an example of creating a package binding.
 2. Initialize the Push Notification Service and bind the service to the Bluemix application
 
 3. Configure the [Push Notification application](https://console.ng.bluemix.net/docs/services/mobilepush/index.html).
-  
+
   Be sure to remember the `App GUID` and the `App Secret` of the Bluemix app you created.
-  
+
 4. Create a package binding with the `/whisk.system/pushnotifications`.
-  
+
   ```
   wsk package bind /whisk.system/pushnotifications myPush -p appId myAppID -p appSecret myAppSecret
   ```
-  
+
 5. Verify that the package binding exists.
-  
+
   ```
   wsk package list
   ```
@@ -45,43 +45,67 @@ The following is an example of creating a package binding.
   packages
   /myNamespace/myPush private binding
   ```
-  
+
 
 ## Sending push notifications
 
 The `/whisk.system/pushnotifications/sendMessage` action sends push notifications to registered devices. The parameters are as follows:
+
 - `text`: The notification message to be shown to the user. For example: `-p text "Hi ,OpenWhisk send a notification"`.
 - `url`: An optional URL that can be sent along with the alert. For example: `-p url "https:\\www.w3.ibm.com"`.
 - `deviceIds` The list of specified devices. For example: `-p deviceIds ["deviceID1"]`.
 - `platforms` Send notification to the devices of the specified platforms. 'A' for apple (iOS) devices and 'G' for google (Android) devices. For example `-p platforms ["A"]`.
+- `userIds` - Send notification to the devices of the specified users. For example: `-p userIds ["testUser"]`
 - `tagNames` Send notification to the devices that have subscribed to any of these tags. For example `-p tagNames "[\"tag1\"]" `.
-- `gcmPayload`: Custom JSON payload that will be sent as part of the notification message. For example: `-p gcmPayload "{\"hi\":\"hello\"}"`
-- `gcmSound`: The sound file (on device) that will be attempted to play when the notification arrives on the device.
+
 - `gcmCollapseKey`: This parameter identifies a group of messages
+- `gcmCategory` - The category identifier to be used for the interactive push notifications.
+- `gcmIcon` - Specify the name of the icon to be displayed for the notification. Make sure the icon is already packaged with the client application.
 - `gcmDelayWhileIdle`: When this parameter is set to true, it indicates that the message will not be sent until the device becomes active.
-- `gcmPriority`: Sets the priority of the message.
-- `gcmTimeToLive`: This parameter specifies how long (in seconds) the message will be kept in GCM storage if the device is offline.
 - `gcmSync`: Device group messaging makes it possible for every app instance in a group to reflect the latest messaging state.
 - `gcmVisibility`: private/public - Visibility of this notification, which affects how and when the notifications are revealed on a secure locked screen.
+- `gcmPayload`: Custom JSON payload that will be sent as part of the notification message. For example: `-p gcmPayload "{\"hi\":\"hello\"}"`
+- `gcmPriority`: Sets the priority of the message.
+- `gcmSound`: The sound file (on device) that will be attempted to play when the notification arrives on the device.
+- `gcmTimeToLive`: This parameter specifies how long (in seconds) the message will be kept in GCM storage if the device is offline.
 - `gcmStyleType`: Specifies the type of expandable notifications. The possible values are `bigtext_notification`, `picture_notification`, `inbox_notification`.
 - `gcmStyleTitle`: Specifies the title of the notification. The title is displayed when the notification is expanded. Title must be specified for all three expandable notification.
-- `gcmStyleUrl`: An URL from which the picture has to be obtained for the notification. Must be specified for picture_notification.
-- `gcmStyleText`: The big text that needs to be displayed on expanding a bigtext_notification. Must be specified for bigtext_notification.
-- `gcmStyleLines`: An array of strings that is to be displayed in inbox style for inbox_notification. Must be specified for inbox_notification.
+- `gcmStyleUrl`: An URL from which the picture has to be obtained for the notification. Must be specified for `picture_notification`.
+- `gcmStyleText`: The big text that needs to be displayed on expanding a `bigtext_notification`. Must be specified for `bigtext_notification`.
+- `gcmStyleLines`: An array of strings that is to be displayed in inbox style for `inbox_notification`. Must be specified for `inbox_notification`.
+- `gcmLightsLedArgb` - The color of the led. The hardware will do its best approximation.
+- `gcmLightsLedOnMs` - The number of milliseconds for the LED to be on while it's flashing. The hardware will do its best approximation.
+- `gcmLightsLedOffMs` - The number of milliseconds for the LED to be off while it's flashing. The hardware will do its best approximation.
+
 - `apnsBadge`: The number to display as the badge of the application icon.
 - `apnsCategory`: The category identifier to be used for the interactive push notifications.
 - `apnsIosActionKey`: The title for the Action key .
 - `apnsPayload`: Custom JSON payload that will be sent as part of the notification message.
 - `apnsType`: ['DEFAULT', 'MIXED', 'SILENT'].
 - `apnsSound`: The name of the sound file in the application bundle. The sound of this file is played as an alert.
+- `apnsTitleLocKey` - The key to a title string in the Localizable.strings file for the current localization. The key string can be formatted with %@ and %n$@ specifiers to take the variables specified in the `titleLocArgs` array.
+- `apnsLocKey` - A key to an alert-message string in a Localizable.strings file for the current localization (which is set by the user\u2019s language preference). The key string can be formatted with %@ and %n$@ specifiers to take the variables specified in the locArgs array.
+- `apnsLaunchImage` - The filename of an image file in the app bundle, with or without the filename extension. The image is used as the launch image when users tap the action button or move the action slider.
+- `pnsTitleLocArgs` - Variable string values to appear in place of the format specifiers in `title-loc-key`.
+- `apnsLocArgs` - Variable string values to appear in place of the format specifiers in `locKey`.
+- `apnstitle` - The title of Rich Push notifications (Supported only on iOS 10 and above).
+- `apnsSubtitle` - The subtitle of the Rich Notifications. (Supported only on iOS 10 and above).
+- `apnsAttachmentUrl` - The link to the iOS notifications media (video, audio, GIF, images - Supported only on iOS 10 and above).
+
 - `fireFoxTitle`: Specifies the title to be set for the WebPush Notification.
 - `fireFoxIconUrl`: The URL of the icon to be set for the WebPush Notification.
 - `fireFoxTimeToLive`: This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline.
 - `fireFoxPayload`: Custom JSON payload that will be sent as part of the notification message.
+
 - `chromeTitle`: Specifies the title to be set for the WebPush Notification.
 - `chromeIconUrl`: The URL of the icon to be set for the WebPush Notification.
 - `chromeTimeToLive`: This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline.
 - `chromePayload`: Custom JSON payload that will be sent as part of the notification message.
+
+- `safariTitle` - Specifies the title to be set for the Safari Push Notifications.
+- `safariUrlArgs` - The URL arguments that need to be used with this notification. This has to provided in the form of a JSON Array.
+- `safariAction` - The label of the action button.
+
 - `chromeAppExtTitle`: Specifies the title to be set for the WebPush Notification.
 - `chromeAppExtCollapseKey`: This parameter identifies a group of messages.
 - `chromeAppExtDelayWhileIdle`: When this parameter is set to true, it indicates that the message should not be sent until the device becomes active.
@@ -92,7 +116,7 @@ The `/whisk.system/pushnotifications/sendMessage` action sends push notification
 Here is an example of sending push notification from the *pushnotification* package.
 
 - Send a push notification by using the `sendMessage` action in the package binding that you created previously. Be sure to replace `/myNamespace/myPush` with your package name.
-  
+
   ```
   wsk action invoke /myNamespace/myPush/sendMessage --blocking --result  -p url https://example.com -p text "this is my message"  -p sound soundFileName -p deviceIds "[\"T1\",\"T2\"]"
   ```
@@ -100,7 +124,7 @@ Here is an example of sending push notification from the *pushnotification* pack
   ```json
   {
     "result": {
-    "pushResponse": 
+    "pushResponse":
       {
         "messageId":"11111H",
         "message":{
@@ -124,7 +148,7 @@ Here is an example of sending push notification from the *pushnotification* pack
     "success": true
   }
   ```
-  
+
 
 ## Firing a trigger event on Push Notifications service activity
 
@@ -139,30 +163,30 @@ The parameters are as follows:
 The following is an example of creating a trigger that will be fired each time there is a new device registered with the Push Notifications service application.
 
 1. Create a package binding configured for your Push Notifications service with your appId and appSecret.
-  
+
   ```
   wsk package bind /whisk.system/pushnotifications myNewDeviceFeed --param appID myapp --param appSecret myAppSecret --param events onDeviceRegister
   ```
-  
+
 2. Create a trigger for the Push Notifications service `onDeviceRegister` event type using your `myPush/webhook` feed.
-  
+
   ```
   wsk trigger create myPushTrigger --feed myPush/webhook --param events onDeviceRegister
-  ``` 
-  
+  ```
+
 3. You could create a rule that sends a message every time a new device gets register. Create a new rule using the previous action and trigger.
-  
+
   ```
   wsk rule create --enable myRule myPushTrigger sendMessage
   ```
   {: pre}
-  
+
   Check the results in the `wsk activation poll`.
 
   Register a device in your Bluemix application , you can see the `rule`,`trigger` and  `action` getting executed in the openWhisk [dashboard] (https://console.{Domain}/openwhisk/dashboard).
 
   The action will send a push notification.
-  
+
 # Working with repository
 
 ## Deploying Push Package using `installCatalog.sh`
diff --git a/packages/actions/sendMessage.js b/packages/actions/sendMessage.js
index e3b9a06..fc47e22 100644
--- a/packages/actions/sendMessage.js
+++ b/packages/actions/sendMessage.js
@@ -23,34 +23,57 @@
 *  @param {object} text - The notification message to be shown to the user. Eg: -p text "Hi ,OpenWhisk send a notification"
 *  @param {string} deviceIds - Send notification to the list of specified devices. Eg: -p deviceIds "["deviceID1"]"
 *  @param {object} platforms - Send notification to the devices of the specified platforms. 'A' for apple (iOS) devices and 'G' for google (Android) devices. Eg: -p platforms ["A"]
+*  @param {object} userIds - Send notification to the devices of the specified users. Eg: -p userIds ["testUser"]
 *  @param {string} tagNames - Send notification to the devices that have subscribed to any of these tags. Eg -p tagNames "["tag1"]"
-*  @param {string} gcmPayload - Custom JSON payload that will be sent as part of the notification message. Eg: -p gcmPayload "{"hi":"hello"}".
-*  @param {string} gcmSound - The sound file (on device) that will be attempted to play when the notification arrives on the device.
+
 *  @param {string} gcmCollapseKey - This parameter identifies a group of messages.
+*  @param {string} gcmCategory - The category identifier to be used for the interactive push notifications.
+*  @param {string} gcmIcon - Specify the name of the icon to be displayed for the notification. Make sure the icon is already packaged with the client application.
 *  @param {string} gcmDelayWhileIdle - When this parameter is set to true, it indicates that the message should not be sent until the device becomes active.
-*  @param {string} gcmPriority - Sets the priority of the message.
-*  @param {string} gcmTimeToLive - This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline.
 *  @param {string} gcmSync - Device group messaging makes it possible for every app instance in a group to reflect the latest messaging state.
 *  @param {string} gcmVisibility - private/public - Visibility of this notification, which affects how and when the notifications are revealed on a secure locked screen.
+*  @param {string} gcmPayload - Custom JSON payload that will be sent as part of the notification message. Eg: -p gcmPayload "{"hi":"hello"}".
+*  @param {string} gcmPriority - Sets the priority of the message.
+*  @param {string} gcmSound - The sound file (on device) that will be attempted to play when the notification arrives on the device.
+*  @param {string} gcmTimeToLive - This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline.
 *  @param {string} gcmStyleType - Specifies the type of expandable notifications. The possible values are bigtext_notification, picture_notification, inbox_notification.
 *  @param {string} gcmStyleTitle - Specifies the title of the notification. The title is displayed when the notification is expanded. Title must be specified for all three expandable notification.
 *  @param {string} gcmStyleUrl - An URL from which the picture has to be obtained for the notification. Must be specified for picture_notification.
 *  @param {string} gcmStyleText - The big text that needs to be displayed on expanding a bigtext_notification. Must be specified for bigtext_notification.
 *  @param {string} gcmStyleLines - An array of strings that is to be displayed in inbox style for inbox_notification. Must be specified for inbox_notification.
+*  @param {string} gcmLightsLedArgb - The color of the led. The hardware will do its best approximation.
+*  @param {string} gcmLightsLedOnMs - The number of milliseconds for the LED to be on while it's flashing. The hardware will do its best approximation.
+*  @param {string} gcmLightsLedOffMs - The number of milliseconds for the LED to be off while it's flashing. The hardware will do its best approximation.
+
 *  @param {string} apnsBadge - The number to display as the badge of the application icon.
 *  @param {string} apnsCategory -  The category identifier to be used for the interactive push notifications.
 *  @param {string} apnsIosActionKey - The title for the Action key.
 *  @param {string} apnsPayload - Custom JSON payload that will be sent as part of the notification message.
 *  @param {string} apnsType - ['DEFAULT', 'MIXED', 'SILENT'].
 *  @param {string} apnsSound - The name of the sound file in the application bundle. The sound of this file is played as an alert.
+*  @param {string} apnsTitleLocKey - The key to a title string in the Localizable.strings file for the current localization. The key string can be formatted with %@ and %n$@ specifiers to take the variables specified in the titleLocArgs array.
+*  @param {string} apnsLocKey - A key to an alert-message string in a Localizable.strings file for the current localization (which is set by the user\u2019s language preference). The key string can be formatted with %@ and %n$@ specifiers to take the variables specified in the locArgs array.
+*  @param {string} apnsLaunchImage - The filename of an image file in the app bundle, with or without the filename extension. The image is used as the launch image when users tap the action button or move the action slider.
+*  @param {string} apnsTitleLocArgs - Variable string values to appear in place of the format specifiers in title-loc-key.
+*  @param {string} apnsLocArgs - Variable string values to appear in place of the format specifiers in locKey.
+*  @param {string} apnstitle - The title of Rich Push notifications (Supported only on iOS 10 and above).
+*  @param {string} apnsSubtitle - The subtitle of the Rich Notifications. (Supported only on iOS 10 and above).
+*  @param {string} apnsAttachmentUrl - The link to the iOS notifications media (video, audio, GIF, images - Supported only on iOS 10 and above).
+
 *  @param {string} fireFoxTitle - Specifies the title to be set for the WebPush Notification.
 *  @param {string} fireFoxIconUrl -  The URL of the icon to be set for the WebPush Notification.
 *  @param {string} fireFoxTimeToLive - This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline.
 *  @param {string} fireFoxPayload - Custom JSON payload that will be sent as part of the notification message.
+
 *  @param {string} chromeTitle - Specifies the title to be set for the WebPush Notification.
 *  @param {string} chromeIconUrl -  The URL of the icon to be set for the WebPush Notification.
 *  @param {string} chromeTimeToLive - This parameter specifies how long (in seconds) the message should be kept in GCM storage if the device is offline.
 *  @param {string} chromePayload - Custom JSON payload that will be sent as part of the notification message.
+
+*  @param {string} safariTitle - Specifies the title to be set for the Safari Push Notifications.
+*  @param {string} safariUrlArgs - The URL arguments that need to be used with this notification. This has to provided in the form of a JSON Array.
+*  @param {string} safariAction - The label of the action button.
+
 *  @param {string} chromeAppExtTitle - Specifies the title to be set for the WebPush Notification.
 *  @param {string} chromeAppExtCollapseKey - This parameter identifies a group of messages.
 *  @param {string} chromeAppExtDelayWhileIdle - When this parameter is set to true, it indicates that the message should not be sent until the device becomes active.
@@ -82,6 +105,7 @@ function main(params) {
   var targetDeviceIds = params.deviceIds;
   var targetPlatforms = params.platforms;
   var targetTagNames = params.tagNames;
+  var targetUserIds = params.userIds;
 
   // apns settings
   var apnsBadge = params.apnsBadge; // should be an int
@@ -90,6 +114,14 @@ function main(params) {
   var apnsSound = params.apnsSound;
   var apnsPayload = params.apnsPayload;
   var apnsType = params.apnsType;
+  var apnsTitleLocKey = params.apnsTitleLocKey;
+  var apnsLocKey = params.apnsLocKey;
+  var apnsLaunchImage = params.apnsLaunchImage;
+  var apnsTitleLocArgs = params.apnsTitleLocArgs;
+  var apnsLocArgs = params.apnsLocArgs;
+  var apnstitle = params.apnstitle;
+  var apnsSubtitle = params.apnsSubtitle;
+  var apnsAttachmentUrl = params.apnsAttachmentUrl;
 
   // gcm settings
   var gcmCollapseKey = params.gcmCollapseKey;
@@ -100,6 +132,8 @@ function main(params) {
   var gcmTimeToLive = params.gcmTimeToLive;
   var gcmSync = params.gcmSync;
   var gcmVisibility = params.gcmVisibility;
+  var gcmCategory = params.gcmCategory;
+  var gcmIcon = params.gcmIcon;
 
   //GCM Style settings
   var gcmStyleType = params.gcmStyleType;
@@ -108,6 +142,11 @@ function main(params) {
   var gcmStyleText = params.gcmStyleText;
   var gcmStyleLines = params.gcmStyleLines;
 
+  //GCM Light settings
+  var gcmLightsLedArgb = params.gcmLightsLedArgb;
+  var gcmLightsLedOnMs = params.gcmLightsLedOnMs;
+  var gcmLightsLedOffMs = params.gcmLightsLedOffMs;
+
   //Firefox web settings
   var fireFoxTitle = params.fireFoxTitle;
   var fireFoxIconUrl = params.fireFoxIconUrl;
@@ -120,6 +159,11 @@ function main(params) {
   var chromeTimeToLive = params.chromeTimeToLive;
   var chromePayload = params.chromePayload;
 
+  //Safari web settings
+  var safariTitle = params.safariTitle;
+  var safariUrlArgs = params.safariUrlArgs;
+  var safariAction = params.safariAction;
+
   //Chrome Apps & Extensions web settings
   var chromeAppExtTitle = params.chromeAppExtTitle;
   var chromeAppExtCollapseKey = params.chromeAppExtCollapseKey;
@@ -156,6 +200,9 @@ function main(params) {
   if (targetTagNames) {
     target.tagNames = targetTagNames;
   }
+  if (targetUserIds) {
+    target.userIds = targetUserIds;
+  }
 
   if (isEmpty(target)) {
     console.log("No target set, broadcasting message to all registered devices");
@@ -183,6 +230,30 @@ function main(params) {
   if (apnsPayload) {
     apns.payload = apnsPayload;
   }
+  if (apnsTitleLocKey) {
+    apns.titleLocKey = apnsTitleLocKey;
+  }
+  if (apnsLocKey) {
+    apns.locKey = apnsLocKey;
+  }
+  if (apnsLaunchImage) {
+    apns.launchImage = apnsLaunchImage;
+  }
+  if (apnsTitleLocArgs) {
+    apns.titleLocArgs = apnsTitleLocArgs;
+  }
+  if (apnsLocArgs) {
+    apns.locArgs = apnsLocArgs;
+  }
+  if (apnstitle) {
+    apns.title = apnstitle;
+  }
+  if (apnsSubtitle) {
+    apns.subtitle = apnsSubtitle;
+  }
+  if (apnsAttachmentUrl) {
+    apns.attachmentUrl = apnsAttachmentUrl;
+  }
 
   if (!isEmpty(apns)) {
     sendMessage.settings = {};
@@ -215,6 +286,13 @@ function main(params) {
   if (gcmSync) {
     gcm.sync = gcmSync;
   }
+  if (gcmCategory) {
+    gcm.interactiveCategory = gcmCategory;
+  }
+  if (gcmIcon) {
+    gcm.icon = gcmIcon;
+  }
+
   var gcmStyle = {};
   if(gcmStyleType){
     gcmStyle.type = gcmStyleType;
@@ -235,6 +313,20 @@ function main(params) {
     gcm.style = gcmStyle;
   }
 
+  var gcmLights = {};
+  if(gcmLightsLedArgb){
+    gcmLights.ledArgb = gcmLightsLedArgb;
+  }
+  if (gcmLightsLedOnMs) {
+    gcmLights.ledOnMs = gcmLightsLedOnMs;
+  }
+  if (gcmLightsLedOffMs) {
+    gcmLights.ledOffMs = gcmLightsLedOffMs;
+  }
+  if (!isEmpty(gcmLights)) {
+    gcm.lights = gcmLights;
+  }
+
   if (!isEmpty(gcm)) {
     if (!sendMessage.settings) {
       sendMessage.settings = {};
@@ -264,6 +356,24 @@ function main(params) {
     sendMessage.settings.firefoxWeb = firefoxWeb;
   }
 
+  // create Safari settings section
+  var safariWeb = {};
+  if (safariTitle){
+    safariWeb.title = safariTitle;
+  }
+  if (safariUrlArgs) {
+    safariWeb.urlArgs = safariUrlArgs;
+  }
+  if (safariAction) {
+    safariWeb.action = safariAction;
+  }
+  if (!isEmpty(safariWeb)) {
+    if (!sendMessage.settings) {
+      sendMessage.settings = {};
+    }
+    sendMessage.settings.safariWeb = safariWeb;
+  }
+
   // create Chrome settings section
   var chromeWeb = {};
   if (chromeTitle){
@@ -348,4 +458,3 @@ function isEmpty(obj) {
 
   return true;
 }
-
diff --git a/packages/feeds/webhook.js b/packages/feeds/webhook.js
index c99fcb1..cf8501d 100644
--- a/packages/feeds/webhook.js
+++ b/packages/feeds/webhook.js
@@ -36,7 +36,6 @@ function main(params) {
     var appSecret = params.appSecret;
     // The URL to create the webhook on push service
     var registrationEndpoint = 'https://mobile.ng.bluemix.net/imfpush/v1/apps/' + appId + '/webhooks';
-    //var registrationEndpoint = 'https://imfpushtest1.ng.bluemix.net/imfpush/v1/apps/'+appId+'/webhooks';
     var lifecycleEvent = (params.lifecycleEvent || 'CREATE').trim().toUpperCase();
     if (lifecycleEvent === 'CREATE' || lifecycleEvent === 'UPDATE') {
 

-- 
To stop receiving notification emails like this one, please contact
['"commits@openwhisk.apache.org" <co...@openwhisk.apache.org>'].