Пример #1
0
def webhook():
    action_name = request.json.get("next_action")
    tracker_json = request.json.get("tracker")
    domain = request.json.get("domain", {})
    tracker = Tracker.from_dict(tracker_json)
    dispatcher = CollectingDispatcher()
    print("action: ", action_name)
    events = eval(str(action_name) + '(dispatcher, tracker, domain)')
    return jsonify(create_api_response(events, dispatcher.messages))
Пример #2
0
    def run(self, action_call):
        action_name = action_call.get("next_action")
        if action_name:
            logger.debug("Received request to run '{}'".format(action_name))
            action = self.actions.get(action_name)
            if not action:
                raise Exception("No registered Action found for name '{}'."
                                "".format(action_name))

            tracker_json = action_call.get("tracker")
            domain = action_call.get("domain", {})
            tracker = Tracker.from_dict(tracker_json)
            dispatcher = CollectingDispatcher()

            events = action(dispatcher, tracker, domain)
            logger.debug("Successfully ran '{}'".format(action_name))
            return self._create_api_response(events, dispatcher.messages)
        else:
            logger.warning("Received an action call without an action.")