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

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


The following commit(s) were added to refs/heads/master by this push:
     new 7197399  Use needle to replace request (#304)
7197399 is described below

commit 71973994b9c25055fceffddd4a8e84ddd8086b3c
Author: jiangpch <[email protected]>
AuthorDate: Wed Jul 3 18:54:23 2019 +0800

    Use needle to replace request (#304)
---
 packages/github/webhook.js   | 119 ++++++++++++++++---------------------------
 packages/slack/post.js       |   7 +--
 packages/weather/forecast.js |  17 +++----
 3 files changed, 51 insertions(+), 92 deletions(-)

diff --git a/packages/github/webhook.js b/packages/github/webhook.js
index b911812..6ce156d 100644
--- a/packages/github/webhook.js
+++ b/packages/github/webhook.js
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-var request = require('request');
+const needle = require('needle');
 
 /**
  *  Feed to create a webhook on Github
@@ -51,13 +51,10 @@ function main(params) {
   var urlHost = require('url').parse(process.env.__OW_API_HOST);
   var whiskCallbackUrl = urlHost.protocol + '//' + process.env.__OW_API_KEY + 
"@" + urlHost.host + '/api/v1/namespaces/' + encodeURIComponent(triggerName[1]) 
+ '/triggers/' + encodeURIComponent(triggerName[2]);
 
-    // The URL to create the webhook on Github
+  // The URL to create the webhook on Github
   var registrationEndpoint = 'https://api.github.com/repos/' + (organization ? 
organization : username) + '/' + repository + '/hooks';
   console.log("Using endpoint: " + registrationEndpoint);
 
-  var authorizationHeader = 'Basic ' + new Buffer(username + ':' +
-  accessToken).toString('base64');
-
   if (lifecycleEvent === 'CREATE') {
     var events = params.events.split(',');
 
@@ -71,18 +68,8 @@ function main(params) {
       }
     };
 
-    var options = {
-      method: 'POST',
-      url: registrationEndpoint,
-      body: JSON.stringify(body),
-      headers: {
-        'Content-Type': 'application/json',
-        'Authorization': authorizationHeader,
-        'User-Agent': 'whisk'
-      }
-    };
-    var promise = new Promise(function(resolve, reject) {
-      request(options, function (error, response, body) {
+    var promise = new Promise(function (resolve, reject) {
+      needle.post(registrationEndpoint, body, { 'json': true, username: 
username, password: accessToken, user_agent: 'whisk' }, function (error, 
response, body) {
         if (error) {
           reject({
             response: response,
@@ -99,80 +86,60 @@ function main(params) {
               response: body
             });
           } else {
-            resolve({response: body});
+            resolve({ response: body });
           }
         }
       });
     });
 
     return promise;
-  } else if(lifecycleEvent === 'DELETE') {
+  } else if (lifecycleEvent === 'DELETE') {
     //list all the existing webhooks first.
-    var deleteOptions = {
-        method: 'GET',
-        url: registrationEndpoint,
-        json: true,
-        headers: {
-            'Content-Type': 'application/json',
-            'Authorization': authorizationHeader,
-            'User-Agent': 'whisk'
-        }
-    };
-
-    var deletePromise = new Promise(function(resolve, reject) {
-      request(deleteOptions, function(error, response, body){
+    var deletePromise = new Promise(function (resolve, reject) {
+      needle.get(registrationEndpoint, { 'json': true, username: username, 
password: accessToken, user_agent: 'whisk' }, function (error, response, body) {
         // the URL that comes back from GitHub does not include auth info
         var foundWebhookToDelete = false;
 
-        if (error){
+        if (error) {
           reject({
             response: response,
-            error:error,
-            body:body
+            error: error,
+            body: body
           });
         } else {
-          for (var i=0; i<body.length;i++){
-              if (decodeURI(body[i].config.url) === whiskCallbackUrl) {
-                  foundWebhookToDelete = true;
-
-                  console.log('DELETE Webhook URL: ' + body[i].url);
-                  var options = {
-                      method: 'DELETE',
-                      url: body[i].url,
-                      headers: {
-                          'Content-Type': 'application/json',
-                          'Authorization': authorizationHeader,
-                          'User-Agent': 'whisk'
-                      }
-                  };
-
-                  request(options, function(error, response, body) {
-                      if (error) {
-                          reject({
-                            response: response,
-                            error:error,
-                            body:body
-                          });
-                      } else {
-                          console.log("Status code: " + response.statusCode);
-                          if (response.statusCode >= 400) {
-                              console.log("Response from Github: " + body);
-
-                              // a 404 is common and confusing enough to 
warrant an extra message
-                              if(response.statusCode === 404) {
-                                console.log('Please ensure your accessToken is 
authorized to delete webhooks.');
-                              }
-
-                              reject({
-                                  statusCode: response.statusCode,
-                                  response: body
-                              });
-                          } else {
-                            resolve();
-                          }
-                      }
+          for (var i = 0; i < body.length; i++) {
+            if (decodeURI(body[i].config.url) === whiskCallbackUrl) {
+              foundWebhookToDelete = true;
+
+              console.log('DELETE Webhook URL: ' + body[i].url);
+
+              needle.delete(body[i].url, null, { username: username, password: 
accessToken, user_agent: 'whisk' }, function (error, response, body) {
+                if (error) {
+                  reject({
+                    response: response,
+                    error: error,
+                    body: body
                   });
-              }
+                } else {
+                  console.log("Status code: " + response.statusCode);
+                  if (response.statusCode >= 400) {
+                    console.log("Response from Github: " + body);
+
+                    // a 404 is common and confusing enough to warrant an 
extra message
+                    if (response.statusCode === 404) {
+                      console.log('Please ensure your accessToken is 
authorized to delete webhooks.');
+                    }
+
+                    reject({
+                      statusCode: response.statusCode,
+                      response: body
+                    });
+                  } else {
+                    resolve();
+                  }
+                }
+              });
+            }
           }
 
           if (!foundWebhookToDelete) {
diff --git a/packages/slack/post.js b/packages/slack/post.js
index cdd535f..71a3b99 100644
--- a/packages/slack/post.js
+++ b/packages/slack/post.js
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-var request = require('request');
+const needle = require('needle');
 
 /**
  * Action to post to slack
@@ -76,10 +76,7 @@ function main(params) {
     }
 
     var promise = new Promise(function (resolve, reject) {
-        request.post({
-            url: params.url,
-            formData: body
-        }, function (err, res, body) {
+        needle.post(params.url, body, function (err, res, body) {
             if (err) {
                 console.log('error: ', err, body);
                 reject(err);
diff --git a/packages/weather/forecast.js b/packages/weather/forecast.js
index 5023ec0..d112ed8 100644
--- a/packages/weather/forecast.js
+++ b/packages/weather/forecast.js
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-var request = require('request');
+const needle = require('needle');
 
 /**
  * Get hourly weather forecast for a lat/long from the Weather API service.
@@ -34,15 +34,15 @@ function main(params) {
     var username = params.username;
     var password = params.password;
     var lat = params.latitude || '0';
-    var lon = params.longitude ||  '0';
+    var lon = params.longitude || '0';
     var language = params.language || 'en-US';
     var units = params.units || 'm';
     var timePeriod = params.timePeriod || '10day';
     var host = params.host || 'twcservice.mybluemix.net';
     var url = 'https://' + host + '/api/weather/v1/geocode/' + lat + '/' + lon;
-    var qs = {language: language, units: units};
+    var qs = { language: language, units: units };
 
-    switch(timePeriod) {
+    switch (timePeriod) {
         case '48hour':
             url += '/forecast/hourly/48hour.json';
             break;
@@ -60,13 +60,8 @@ function main(params) {
 
     console.log('url:', url);
 
-    var promise = new Promise(function(resolve, reject) {
-        request({
-            url: url,
-            qs: qs,
-            auth: {username: username, password: password},
-            timeout: 30000
-        }, function (error, response, body) {
+    var promise = new Promise(function (resolve, reject) {
+        needle.request('get', url, qs, { 'username': username, 'password': 
password, timeout: 30000 }, function (error, response, body) {
             if (!error && response.statusCode === 200) {
                 var j = JSON.parse(body);
                 resolve(j);

Reply via email to