def setup_default_wrappers(self): """ Setup defaulf wrappers. Wrappers are applied when view method does not return instance of Response. In this case nefertari renderers call wrappers and handle response generation. Note: It's important for `add_etag` wrapper be applied before `apply_privacy` as later may remove response data that is used to generate etag """ # Index self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), wrappers.add_etag(self.request), ] # Show self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Create self._after_calls['create'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Update self._after_calls['update'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Replace self._after_calls['replace'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Privacy wrappers if self._auth_enabled: for meth in ('index', 'show', 'create', 'update', 'replace'): self._after_calls[meth] += [ wrappers.apply_privacy(self.request), ] for meth in ('update', 'replace', 'update_many'): self._before_calls[meth] += [ wrappers.apply_request_privacy(self.Model, self._json_params), ]
def setup_default_wrappers(self): """ Setup defaulf wrappers. Wrappers are applied when view method does not return instance of Response. In this case nefertari renderers call wrappers and handle response generation. Note: It's important for `add_etag` wrapper be applied before `apply_privacy` as later may remove response data that is used to generate etag """ # Index self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), wrappers.add_etag(self.request), ] # Show self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Create self._after_calls['create'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Update self._after_calls['update'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Replace self._after_calls['replace'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Privacy wrappers if self._auth_enabled: for meth in ('index', 'show', 'create', 'update', 'replace'): self._after_calls[meth] += [ wrappers.apply_privacy(self.request), ] for meth in ('update', 'replace', 'update_many'): self._before_calls[meth] += [ wrappers.apply_request_privacy( self.Model, self._json_params), ]
def test_wrap_in_dict_meta_list(self, mock_obj): mock_obj.return_value = lambda **kw: [{'foo': 'bar'}] result = Mock() result._nefertari_meta = {'meta': 'metameta'} processed = wrappers.wrap_in_dict(123)(result=result, qoo=1) mock_obj.assert_called_once_with(123) assert processed == {'data': [{'foo': 'bar'}], 'meta': 'metameta'}
def test_wrap_in_dict_meta_list(self, mock_obj): mock_obj.return_value = lambda **kw: [{"foo": "bar"}] result = Mock() result._nefertari_meta = {"meta": "metameta"} processed = wrappers.wrap_in_dict(123)(result=result, qoo=1) mock_obj.assert_called_once_with(123) assert processed == {"data": [{"foo": "bar"}], "meta": "metameta"}
def run_after_calls(self, value, system): request = system.get('request') if request and hasattr(request, 'action'): if request.action in ['index', 'show']: value = wrappers.wrap_in_dict(request)(result=value) return value
def setup_default_wrappers(self): self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_etag(self.request), ] self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), ] self._after_calls['delete'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['delete_many'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['update_many'] = [ wrappers.add_confirmation_url(self.request) ]
def setup_default_wrappers(self): root_resource = getattr(self, 'root_resource', None) auth_enabled = root_resource and root_resource.auth self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), ] if auth_enabled: self._after_calls['index'] += [ wrappers.apply_privacy(self.request), ] self._after_calls['index'] += [ wrappers.add_etag(self.request), ] self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), ] if auth_enabled: self._after_calls['show'] += [ wrappers.apply_privacy(self.request), ] self._after_calls['delete'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['delete_many'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['update_many'] = [ wrappers.add_confirmation_url(self.request) ]
def __init__(self, context, request): super(EngineView, self).__init__(context, request) self._params.process_int_param('_limit', 20) def add_self(**kwargs): result = kwargs['result'] request = kwargs['request'] try: for each in result['data']: each['self'] = "%s?id=%s" % ( request.current_route_url(), each['id']) except KeyError: pass return result self.add_after_call('show', add_self) # Wrap in a dict so it acts as "index" self.add_after_call('show', wrappers.wrap_in_dict(self.request), pos=0)
def __init__(self, context, request): super(EngineView, self).__init__(context, request) self._params.process_int_param('_limit', 20) def add_self(**kwargs): result = kwargs['result'] request = kwargs['request'] try: for each in result['data']: each['self'] = "%s?id=%s" % (request.current_route_url(), each['id']) except KeyError: pass return result self.add_after_call('show', add_self) # Wrap in a dict so it acts as "index" self.add_after_call('show', wrappers.wrap_in_dict(self.request), pos=0)
def test_wrap_in_dict_no_meta_list(self, mock_obj): result = Mock(spec=[]) mock_obj.return_value = lambda **kw: [{'foo': 'bar'}] processed = wrappers.wrap_in_dict(123)(result=result, qoo=1) mock_obj.assert_called_once_with(123) assert processed == {'data': [{'foo': 'bar'}]}
def test_wrap_in_dict_no_meta_dict(self, mock_obj): result = Mock(spec=[]) mock_obj.return_value = lambda **kw: {"foo": "bar"} processed = wrappers.wrap_in_dict(123)(result=result, qoo=1) mock_obj.assert_called_once_with(123) assert processed == {"foo": "bar"}