mozreview: add diffstat information to the ReviewRequestSummaryResource (Bug 1286017). r?glob draft
authorSteven MacLeod <smacleod@mozilla.com>
Mon, 11 Jul 2016 15:30:23 -0400
changeset 8940 358c39f5012cedda821016d99f1b664110b9cb30
parent 8936 6b12cacfa18e579528dbd77b3c9c60a01af0e476
child 8941 bf49d54f3ee8cec562e51eb9b24fb12bb5ce9965
push id1029
push usersmacleod@mozilla.com
push dateMon, 18 Jul 2016 19:27:05 +0000
reviewersglob
bugs1286017
mozreview: add diffstat information to the ReviewRequestSummaryResource (Bug 1286017). r?glob MozReview-Commit-ID: 6jQ6eK3mXNL
pylib/mozreview/mozreview/resources/review_request_summary.py
--- a/pylib/mozreview/mozreview/resources/review_request_summary.py
+++ b/pylib/mozreview/mozreview/resources/review_request_summary.py
@@ -8,16 +8,19 @@ from django.db.models import Q
 from djblets.webapi.decorators import (webapi_response_errors,
                                        webapi_request_fields)
 from djblets.webapi.errors import (DOES_NOT_EXIST, INVALID_ATTRIBUTE,
                                    NOT_LOGGED_IN, PERMISSION_DENIED)
 from reviewboard.reviews.models import ReviewRequest
 from reviewboard.webapi.encoder import status_to_string
 from reviewboard.webapi.resources import WebAPIResource
 
+from mozreview.diffviewer import (
+    get_diffstats,
+)
 from mozreview.extra_data import (
     COMMITS_KEY,
     COMMIT_ID_KEY,
     MOZREVIEW_KEY,
     fetch_commit_data,
     gen_child_rrs,
     get_parent_rr,
 )
@@ -199,16 +202,20 @@ class ReviewRequestSummaryResource(WebAP
     def _summarize_review_request(self, request, review_request, commit=None):
         """Returns a dict summarizing a ReviewRequest object.
 
         Example return value for a child request (a parent looks the same but
         without a 'commit' key):
 
         {
             'commit': 'ece2029d013af68f9f32aa0a6199fcb2201d5aae',
+            'diff': {
+                'insert': 15,
+                'delete': 20
+            },
             'has_draft': False,
             'id': 3,
             'issue_open_count': 0,
             'last_updated': '2015-04-13T18:58:25Z',
             'links': {
                 'self': {
                     'href': 'http://127.0.0.1:50936/api/extensions/mozreview.extension.MozReviewExtension/summary/3/',
                     'method': 'GET'
@@ -236,16 +243,17 @@ class ReviewRequestSummaryResource(WebAP
         # TODO: 'submitter' and 'submitter_bmo_id' should be combined into one
         # attribute, likewise with 'reviewers' and 'reviewers_bmo_ids'.  See
         # bug 1164756.
         d['submitter'] = review_request.submitter.username
         d['submitter_bmo_id'] = BugzillaUserMap.objects.get(
             user_id=review_request.submitter.id).bugzilla_user_id
         d['status'] = status_to_string(review_request.status)
         d['reviewers'] = [reviewer.username for reviewer in reviewers]
+        d['diff'] = get_diffstats(review_request, request.user)
 
         # If we have a commit (i.e. we are on a child) add reviewer_status.
         if commit:
             d['reviewers_status'] = get_reviewers_status(review_request,
                                                          reviewers)
         d['reviewers_bmo_ids'] = [bzuser.bugzilla_user_id for bzuser in
                                   BugzillaUserMap.objects.filter(user_id__in=[
                                       reviewer.id for reviewer in reviewers])]