Esempio n. 1
0
    def get_backend_queryset(self, channel, last_id, direction, limit):
        """
        Get the queryset to fetch messages with options from args/kwargs
        
        If the user session contain a BaK controller, it will be used to extract filters 
        and apply them.
        
        The returned queryset contains only dicts of messages (where each dict is a 
        message), mapped key comes from ``self.remote_fields``.
        """
        bak = self.request.session.get(TRIBUNE_BAK_SESSION_NAME, None)
        filters = None
        if bak and bak.active:
            filters = bak.get_filters()

        # Lecture et reconnaissance du timestamp
        _p = ClockParser()

        q = Message.objects
        q = q.filter(**_p.get_time_lookup(self.kwargs['clock']))

        # TODO: raise error if clock is invalid
        return q.get_backend(
            channel=channel, filters=filters,
            last_id=last_id).values(*self.remote_fields)[:limit]
Esempio n. 2
0
 def get(self, request, *args, **kwargs):
     """
     Overwrite get method to perform clock format validation then raise a 
     Http400 if not valid
     """
     _p = ClockParser()
     if not _p.is_valid(self.kwargs['clock']):
         return http.HttpResponseBadRequest(
             PARSER_EXCEPTION_TYPERROR_EXPLAIN,
             mimetype=RemotePlainMixin.mimetype)
     return super(ClockJsonView, self).get(request, *args, **kwargs)
Esempio n. 3
0
 def setUp(self):
     self.parser = ClockParser()