Skip to content

Commit a65fe24

Browse files
authored
Merge pull request #400 from PROCOLLAB-github/fix/delete-collabs
fixed endpoint to delete collab
2 parents ac3475b + a3535be commit a65fe24

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

projects/views.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -515,12 +515,13 @@ def delete(self, request, project_pk: int) -> Response:
515515

516516
class DeleteProjectCollaborators(generics.GenericAPIView):
517517
permission_classes = [IsProjectLeader]
518-
queryset = Project.objects.all().select_related("leader")
519518

520519
def _project_data(
521-
self,
520+
self, project_pk: int
522521
) -> tuple[Annotated[int, "ID проекта"], Annotated[int, "ID лидера проекта"]]:
523-
project = self.get_object()
522+
project = get_object_or_404(
523+
Project.objects.select_related("leader"), id=project_pk
524+
)
524525
return project.id, project.leader.id
525526

526527
@staticmethod
@@ -538,7 +539,7 @@ def _collabs_queryset(
538539
def delete(self, request, project_pk: int) -> Response:
539540
requested_collabs_ids: set[int] = set(request.data)
540541

541-
project_id, leader_id = self._project_data()
542+
project_id, leader_id = self._project_data(project_pk)
542543
existing_collabs_ids: set[int] = set(
543544
self._collabs_queryset(project_id, requested_collabs_ids, leader_id)
544545
)
@@ -549,6 +550,9 @@ def delete(self, request, project_pk: int) -> Response:
549550
status=status.HTTP_422_UNPROCESSABLE_ENTITY,
550551
)
551552
if unexisting_collabs := requested_collabs_ids - existing_collabs_ids:
553+
raise ValueError(
554+
unexisting_collabs, ".", requested_collabs_ids, ".", existing_collabs_ids
555+
)
552556
return Response(
553557
{
554558
"error": f"Users with ids: {list(unexisting_collabs)} are not part of this project."

0 commit comments

Comments
 (0)