diff --git a/backend/api/urls.py b/backend/api/urls.py index 774cd328..0913a186 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -72,6 +72,11 @@ urlpatterns_project = [ view=views.TagList.as_view(), name='tag_list' ), + path( + route='tags/', + view=views.TagDetail.as_view(), + name='tag_detail' + ), path( route='docs//comments', view=views.CommentListDoc.as_view(), diff --git a/backend/api/views/tag.py b/backend/api/views/tag.py index 231d4473..ee479f81 100644 --- a/backend/api/views/tag.py +++ b/backend/api/views/tag.py @@ -1,7 +1,6 @@ from django.shortcuts import get_object_or_404 -from rest_framework import generics, status +from rest_framework import generics from rest_framework.permissions import IsAuthenticated -from rest_framework.response import Response from ..models import Project, Tag from ..permissions import IsInProjectReadOnlyOrAdmin @@ -21,7 +20,9 @@ class TagList(generics.ListCreateAPIView): project = get_object_or_404(Project, pk=self.kwargs['project_id']) serializer.save(project=project) - def delete(self, request, *args, **kwargs): - delete_id = request.data['id'] - Tag.objects.get(id=delete_id).delete() - return Response(status=status.HTTP_204_NO_CONTENT) + +class TagDetail(generics.DestroyAPIView): + queryset = Tag.objects.all() + serializer_class = TagSerializer + lookup_url_kwarg = 'tag_id' + permission_classes = [IsAuthenticated & IsInProjectReadOnlyOrAdmin] diff --git a/frontend/repositories/tag/apiTagRepository.ts b/frontend/repositories/tag/apiTagRepository.ts index 274ca239..b9edde30 100644 --- a/frontend/repositories/tag/apiTagRepository.ts +++ b/frontend/repositories/tag/apiTagRepository.ts @@ -28,7 +28,7 @@ export class APITagRepository implements TagRepository { } async delete(projectId: string, tagId: number): Promise { - const url = `/projects/${projectId}/tags` - await this.request.delete(url, { id: tagId }) + const url = `/projects/${projectId}/tags/${tagId}` + await this.request.delete(url) } }