function main()

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