def put(self, request, pk, format=None): shared_profile = self.get_object(pk) serializer = SharedProfileSerializer(shared_profile, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
class SharedProfileDetail(APIView): """ Retrieve, update or delete a casting request of client. """ def get_object(self, pk): try: return SharedProfile.objects.get(pk=pk) except SharedProfile.DoesNotExist: raise Http404 @swagger_auto_schema(responses={200: SharedProfileDetailSerializer(many=False)}) def get(self, request, pk, format=None): shared_profile = self.get_object(pk) serializer = SharedProfileDetailSerializer(shared_profile) return Response(serializer.data) @swagger_auto_schema( request_body=SharedProfileCreateSerializer(many=True), responses={200: SharedProfileSerializer(many=False)} ) def put(self, request, pk, format=None): shared_profile = self.get_object(pk) serializer = SharedProfileSerializer(shared_profile, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) @swagger_auto_schema(responses={200: 'OK'}) def delete(self, request, pk, format=None): shared_profile = self.get_object(pk) shared_profile.delete() return Response({'id': int(pk)}, status=status.HTTP_200_OK)
def get(self, request, format=None): user = User.objects.get(pk=request.user.pk) client = Client.objects.get(user=user) team = Team.objects.get(client_id=client.id) team_member_ids = TeamMember.objects.filter(team_id=team.id)\ .values_list('id', flat=True)\ .order_by('id') shared_profiles = SharedProfile.objects.filter(team_member_id__in=team_member_ids) serializer = SharedProfileSerializer(shared_profiles, many=True) return Response(serializer.data)
class SharedProfileList(APIView): """ Retrieve all casting requests of client. """ @swagger_auto_schema(responses={200: SharedProfileSerializer(many=True)}) def get(self, request, format=None): user = User.objects.get(pk=request.user.pk) client = Client.objects.get(user=user) team = Team.objects.get(client_id=client.id) team_member_ids = TeamMember.objects.filter(team_id=team.id)\ .values_list('id', flat=True)\ .order_by('id') shared_profiles = SharedProfile.objects.filter(team_member_id__in=team_member_ids) serializer = SharedProfileSerializer(shared_profiles, many=True) return Response(serializer.data)