def anno_dashboard_list(self, request): user = auth_user(self.request_state.headers) limit = 10 if request.limit is not None: limit = request.limit curs = None if request.cursor is not None: try: curs = Cursor(urlsafe=request.cursor) except BadValueError: raise endpoints.BadRequestException('Invalid cursor %s.' % request.cursor) if request.query_type == AnnoQueryType.MY_MENTIONS: return Anno.query_by_my_mentions_for_dashboard(limit, curs, user) elif request.query_type == AnnoQueryType.ACTIVITY_COUNT: return Anno.query_by_count_for_dashboard(limit, curs, user, request.query_type) elif request.query_type == AnnoQueryType.VOTE_COUNT: return Anno.query_by_count_for_dashboard(limit, curs, user, request.query_type) elif request.query_type == AnnoQueryType.FLAG_COUNT: return Anno.query_by_count_for_dashboard(limit, curs, user, request.query_type) elif request.query_type == AnnoQueryType.ARCHIVED: return Anno.query_by_page_for_dashboard(limit, curs, user, query_by_archived=True) elif request.anno_id: return Anno.query_by_anno_for_dashboard(user, request.anno_id) else: return Anno.query_by_page_for_dashboard(limit, curs, user)