def commitments_detail(request, pk, format=None): """ Get, update, or delete a particular commitment """ try: commitment = Commitment.objects.get(pk=pk) except Commitment.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) #TODO: replace with permission class if commitment.owner != request.user.commitmentprofile: return Response(status=status.HTTP_403_FORBIDDEN) if request.method == 'GET': serializer = CommitmentSerializer(commitment) return Response(serializer.data) elif request.method == 'PUT': serializer = CommitmentSerializer(commitment, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': commitment.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def commitments_list(request, format=None): """ Get or post to the list of all commitments linked to the authenticated user """ if request.method == 'GET': serializer = CommitmentSerializer(request.user.commitmentprofile.get_all_commitments(), many=True) return Response(serializer.data) elif request.method == 'POST': serializer = CommitmentSerializer(data=request.data) if serializer.is_valid(): serializer.save(owner=request.user.commitmentprofile) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def commitments_list(request, format=None): """ Get or post to the list of all commitments linked to the authenticated user """ if request.method == 'GET': serializer = CommitmentSerializer( request.user.commitmentprofile.get_all_commitments(), many=True) return Response(serializer.data) elif request.method == 'POST': serializer = CommitmentSerializer(data=request.data) if serializer.is_valid(): serializer.save(owner=request.user.commitmentprofile) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def test_commitment_serializer(self): self.serializer = CommitmentSerializer(self.dummy_commitment) self.assertEqual(self.serializer.data['name'], self.dummy_commitment_name) self.assertEqual(self.serializer.data['owner'], self.user.commitmentprofile)