示例#1
0
    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)