Skip to content

Commit

Permalink
Update in Requests
Browse files Browse the repository at this point in the history
Removed title and body fields from Request model. Access to request objects rearranged. Implemented adding contributor to workspace when the collab request is accepted.
  • Loading branch information
Bera0422 committed Nov 20, 2023
1 parent 5b6c7aa commit 50e3ef7
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 19 deletions.
20 changes: 10 additions & 10 deletions project/backend/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -512,8 +512,6 @@ def setUp(self):
self.request_data = {
'sender': self.contributor_sender.id,
'receiver': self.contributor_receiver.id,
'title' : 'Request Test Title',
'body': 'Request Test Body',
'workspace': self.workspace.workspace_id
}

Expand All @@ -522,11 +520,15 @@ def test_send_collab_request(self):
response = self.client.post(url, self.request_data, format='json')
self.assertEqual(response.status_code, 201)

def update_collab_request(self):
def test_update_collab_request(self):
url = reverse('update_req')
response = self.client.put(url, {'id': self.request_data[id], 'status': 'A'}, format='json')
response = self.client.put(url, {'id': self.request.id, 'status': 'A'}, format='json')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data.status, 'A')
self.assertEqual(response.data['status'], 'A')

receiver = Contributor.objects.get(pk=self.request_data['receiver'])
self.assertGreater(receiver.workspaces.filter(pk=self.request_data['workspace']).count(), 0)
# self.assert()

class ReviewRequestAPITestCase(TestCase):

Expand All @@ -549,8 +551,6 @@ def setUp(self):
self.request_data = {
'sender': self.contributor_sender.id,
'receiver': self.reviewer_receiver.id,
'title' : 'Review Request Test Title',
'body': 'Review Request Test Body',
'workspace': self.workspace.workspace_id
}

Expand All @@ -559,8 +559,8 @@ def test_send_review_request(self):
response = self.client.post(url, self.request_data, format='json')
self.assertEqual(response.status_code, 201)

def update_review_request(self):
def test_update_review_request(self):
url = reverse('update_req')
response = self.client.put(url, {'id': self.request_data[id], 'status': 'R'}, format='json')
response = self.client.put(url, {'id': self.request.id, 'status': 'R'}, format='json')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data.status, 'R')
self.assertEqual(response.data['status'], 'R')
19 changes: 15 additions & 4 deletions project/backend/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,16 +358,27 @@ def send_collaboration_request(request):

@api_view(['PUT'])
def update_request_status(request):
try:
req = Request.objects.get(pk=request.data.get('workspace_id'))
except Request.DoesNotExist:
is_collab_req = True
req = CollaborationRequest.objects.filter(pk=request.data.get('id'))
if not req:
is_collab_req = False
req = ReviewRequest.objects.filter(pk=request.data.get('id'))
if not req:
return Response({"message": "Request not found."}, status=404)

req = req.first()
status = request.data.get('status')

if status not in ["P", "A", "R"]:
return Response({"message": "Invalid status value."}, status=400)

if status == "A":
if is_collab_req:
try:
req.receiver.workspaces.add(req.workspace)
except Exception as e:
return Response({"message": str(e)}, status=500)


req.status = status
req.save()

Expand Down
2 changes: 0 additions & 2 deletions project/backend/database/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,6 @@ class Request(models.Model):

sender = models.ForeignKey(Contributor, on_delete=models.PROTECT, related_name="outgoing_requests")
receiver = models.ForeignKey(Contributor, on_delete=models.PROTECT, related_name="incoming_requests")
title = models.CharField(max_length=80)
body = models.TextField(max_length=400)
status = models.CharField(max_length=1, choices=request_status_choices, default="P")

def accept(self):
Expand Down
4 changes: 1 addition & 3 deletions project/backend/database/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -479,14 +479,12 @@ def setUp(self):
last_name="Test2",
)
self.receiver = Contributor.objects.create(user=receiver_user, bio="Test bio 2")
self.request = Request.objects.create(sender=self.sender, receiver=self.receiver, title="Request title", body="Request body")
self.request = Request.objects.create(sender=self.sender, receiver=self.receiver)

def test_db(self):
self.assertGreater(Request.objects.filter(sender=self.sender).count(), 0, "Could not find created request in the db with this sender!")
req = Request.objects.get(sender=self.sender)
self.assertEqual(req.receiver.id, self.receiver.id, "Receiver didn't match")
self.assertEqual(req.title, self.request.title, "Title didn't match")
self.assertEqual(req.body, self.request.body, "Body didn't match")
self.assertEqual(self.request.status, "P", "Status is not Pending")

def test_accept(self):
Expand Down

0 comments on commit 50e3ef7

Please sign in to comment.