1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 08:16:07 +00:00

add delete reviewer api (#2556)

This commit is contained in:
C_Q
2018-11-23 11:58:44 +08:00
committed by Daniel Pan
parent aab50057db
commit ad48e1b039
2 changed files with 43 additions and 0 deletions

View File

@@ -120,3 +120,32 @@ class DraftReviewReviewerView(APIView):
to_user=reviewer, review_id=r.id)
return Response(result)
def delete(self, request, pk):
"""Delete a reviewer
"""
try:
r = DraftReview.objects.get(pk=pk)
except DraftReview.DoesNotExist:
return api_error(status.HTTP_404_NOT_FOUND,
'Review %s not found' % pk)
perm = check_folder_permission(request, r.origin_repo_id, '/')
if perm is None:
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
reviewer = request.GET.get('username')
if reviewer is None:
return api_error(status.HTTP_400_BAD_REQUEST, 'Email %s invalid.' % reviewer)
try:
reviewer_obj = ReviewReviewer.objects.get(reviewer=reviewer, review_id=r)
except ReviewReviewer.DoesNotExist:
return Response(status.HTTP_200_OK)
reviewer_obj.delete()
return Response(status.HTTP_200_OK)

View File

@@ -34,3 +34,17 @@ class ReviewReviewerViewTest(BaseTestCase):
assert json_resp['success'][0]['user_info']['name'] == self.share_to
self.assertEqual(200, resp.status_code)
def test_can_delete(self):
self.client.post(self.url, {
'reviewer': [self.share_to]
})
assert len(ReviewReviewer.objects.all()) == 1
url = self.url + '?username=' + self.share_to
resp = self.client.delete(url)
self.assertEqual(200, resp.status_code)
assert len(ReviewReviewer.objects.all()) == 0