in packages/feeds/webhook.js [28:88]
function main(params) {
console.log("push trigger feed params: ", params);
var parsedName = parseQName(params.triggerName);
var trigger = parsedName.name;
var namespace = parsedName.namespace;
var endpoint = 'openwhisk.ng.bluemix.net';
// URL of the whisk system. The calls of push service will go here.
var whiskCallbackUrl = 'https://' + process.env.__OW_API_KEY + "@" + endpoint + '/api/v1/namespaces/' + namespace + '/triggers/' + trigger;
var appId = params.appGuid || params.appId;
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 lifecycleEvent = (params.lifecycleEvent || 'CREATE').trim().toUpperCase();
if (lifecycleEvent === 'CREATE' || lifecycleEvent === 'UPDATE') {
var events = params.events;
var body = {
name:trigger,
url: whiskCallbackUrl,
eventTypes: events
};
var options = {
method: 'POST',
url: registrationEndpoint,
body: JSON.stringify(body),
headers: {
'appSecret': appSecret,
'Content-Type': 'application/json'
}
};
var promise = new Promise(function(resolve, reject) {
request(options, function (error, response, body) {
if (error) {
reject(error);
}
resolve({response: body});
});
});
return promise;
} else if (lifecycleEvent === 'DELETE') {
var options = {
method: 'DELETE',
url: registrationEndpoint,
headers: {
'appSecret': appSecret
}
};
var promise = new Promise(function(resolve, reject) {
request(options, function (error, response, body) {
if (error) {
reject(error);
}
resolve({response: body});
});
});
return promise;
}
}