Ejemplo n.º 1
0
    def get_page(cls, query=None, cursor=None, sort=None, amount=50):
        c = None
        if cursor:
            c = Cursor.from_websafe_string(cursor)
        if not query:
            query = cls.query()

        if sort:
            query = query.order(cls.generate_order_from_string(sort))

        data, next_cursor, more = query.fetch_page(amount, start_cursor=c)
        data = {cls._get_kind(): data}
        if more:
            data["cursor"] = next_cursor.to_websafe_string()
        return data
Ejemplo n.º 2
0
 def get_results_with_cursors(self, query, reverse_query, size):
     cursor = self.request.get('cursor', None)
     if cursor:
         try:
             cursor = Cursor.from_websafe_string(cursor)
         except:
             cursor = None
     next_cursor = previous_cursor = None
     if cursor is not None:
         reverse_cursor = cursor.reversed()
         reverse_results, reverse_next_cursor, reverse_more = reverse_query.fetch_page(
             size, start_cursor=reverse_cursor
         )
         if reverse_more:
             previous_cursor = reverse_next_cursor.reversed()
             previous_cursor = previous_cursor.to_websafe_string()
         else:
             previous_cursor = 'START'
     results, next_cursor, more = query.fetch_page(size, start_cursor=cursor)
     if more:
         next_cursor = next_cursor.to_websafe_string()
     else:
         next_cursor = None
     return results, previous_cursor, next_cursor