Example #1
0
    def post(self, widget_id):
        """Handles POST requests, for parameterized widgets."""
        payload = json.loads(self.request.get('payload'))

        params = payload.get('params', {})
        if isinstance(params, list):
            new_params = {}
            for item in params:
                new_params[item['name']] = item['default_value']
            params = new_params

        state_params_dict = {}
        state_params_given = payload.get('state_params')
        if state_params_given:
            for param in state_params_given:
                # Pick a random parameter for each key.
                state_params_dict[param['name']] = (
                    utils.get_random_choice(param['values']))

        response = InteractiveWidget.get_with_params(
            widget_id, params=utils.parse_dict_with_params(
                params, state_params_dict)
        )

        self.render_json({'widget': response})
Example #2
0
 def get(self, widget_id):
     """Handles GET requests."""
     try:
         self.render_json({
             'widget': InteractiveWidget.get_with_params(widget_id, {}),
         })
     except:
         raise self.PageNotFoundException
Example #3
0
 def get(self, widget_id):
     """Handles GET requests."""
     response = InteractiveWidget.get_with_params(widget_id)
     self.response.write(json.dumps({'widget': response}))