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);