function fireTrigger()

in provider/lib/triggers_manager.js [144:183]


    function fireTrigger(triggerIdentifier, event) {
        var method = 'fireTrigger';

        var triggerData = self.triggers[triggerIdentifier];

        if (!triggerData || !shouldFireTrigger(triggerData) || !hasTriggersRemaining(triggerData)) {
          logger.info(method, 'will not fire trigger', triggerData.id);
          return Promise.resolve()
        }

        var triggerObj = parseQName(triggerData.id);

        var form = event;

        logger.info(method, 'firing trigger', triggerData.id, 'with db update');

        var host = 'https://' + self.routerHost;
        var uri = host + '/api/v1/namespaces/' + triggerObj.namespace + '/triggers/' + triggerObj.name;

        return postTrigger(triggerData, form, uri, 0)
        .then(triggerId => {
            logger.info(method, 'Trigger', triggerId, 'was successfully fired');
            if (isMonitoringTrigger(triggerData.monitor, triggerId)) {
                self.monitorStatus.triggerFired = "success";
            }
            if (triggerData.triggersLeft === 0) {
                if (triggerData.monitor) {
                    deleteTrigger(triggerId, triggerData.monitor);
                }
                else {
                    disableTrigger(triggerId, undefined, 'Automatically disabled after reaching max triggers');
                    logger.warn(method, 'no more triggers left, disabled', triggerId);
                }
            }
        })
        .catch(err => {
            logger.error(method, err);
            throw err
        });
    }