Review Board

beta

Adding JSON API to provide "New Updates" column information

Updated 5 months, 1 week ago

Scott Francis Reviewers
reviewboard
None Review Board SVN
I've added a new JSON API to determine if a review request has any new activity since last viewed by the user.

The URL is /api/json/reviewrequests/<review_request_id>/updated/

The API returns the following:

{
   "updated":true,
   "stat":"ok"
}

 

Diff revision 1 (Latest)

  1. trunk/reviewboard/webapi/json.py: 1 change [ 1 ]
  2. trunk/reviewboard/webapi/urls.py: 1 change [ 1 ]
trunk/reviewboard/webapi/json.py
Revision 1413 New Change
489
    except ReviewRequest.DoesNotExist:
489
    except ReviewRequest.DoesNotExist:
490
        return WebAPIResponseError(request, DOES_NOT_EXIST)
490
        return WebAPIResponseError(request, DOES_NOT_EXIST)
491
491
492
    return WebAPIResponse(request)
492
    return WebAPIResponse(request)
493
493
494
@webapi_login_required
495
def review_request_updated(request, review_request_id):
496
    """
497
    Determines if a review has been updated since the user last viewed
498
    it.
499
    """
500
    try:
501
        review_request = ReviewRequest.objects.get(pk=review_request_id)
502
    except ReviewRequest.DoesNotExist:
503
        return WebAPIResponseError(request, DOES_NOT_EXIST)
504
505
    return WebAPIResponse(request, {
506
        'updated' : review_request.get_new_reviews(request.user).count() > 0
507
        })
494
508
495
@webapi_login_required
509
@webapi_login_required
496
def review_request_list(request, func, **kwargs):
510
def review_request_list(request, func, **kwargs):
497
    """
511
    """
498
    Returns a list of review requests.
512
    Returns a list of review requests.
trunk/reviewboard/webapi/urls.py
Revision 1413 New Change
91
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/draft/set/(?P<field_name>[A-Za-z0-9_-]+)/$',
91
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/draft/set/(?P<field_name>[A-Za-z0-9_-]+)/$',
92
     'review_request_draft_set_field'),
92
     'review_request_draft_set_field'),
93
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/draft/set/$',
93
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/draft/set/$',
94
     'review_request_draft_set'),
94
     'review_request_draft_set'),
95
95
96
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/updated/$',
97
     'review_request_updated'),
98
96
    # Reviews
99
    # Reviews
97
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/reviews/draft/save/$',
100
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/reviews/draft/save/$',
98
     'review_draft_save'),
101
     'review_draft_save'),
99
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/reviews/draft/publish/$',
102
    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/reviews/draft/publish/$',
100
     'review_draft_save',
103
     'review_draft_save',
  1. trunk/reviewboard/webapi/json.py: 1 change [ 1 ]
  2. trunk/reviewboard/webapi/urls.py: 1 change [ 1 ]