chore: workspace user favorite pages (#1056)

This commit is contained in:
Bavisetti Narayan
2024-09-06 19:40:45 +05:30
committed by GitHub
parent 1299005de6
commit 104a6f41fc
4 changed files with 36 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ from plane.ee.views import (
WorkspacePageViewSet,
WorkspacePagesDescriptionViewSet,
WorkspacePageVersionEndpoint,
WorkspacePageFavoriteEndpoint,
)
@@ -90,4 +91,9 @@ urlpatterns = [
WorkspacePageVersionEndpoint.as_view(),
name="workspace-page-version",
),
path(
"workspaces/<str:slug>/favorite-pages/<uuid:pk>/",
WorkspacePageFavoriteEndpoint.as_view(),
name="page-favorites",
),
]

View File

@@ -16,6 +16,7 @@ from plane.ee.views.app.page import (
WorkspacePageViewSet,
WorkspacePagesDescriptionViewSet,
WorkspacePageVersionEndpoint,
WorkspacePageFavoriteEndpoint,
)
from plane.ee.views.app.views import (
IssueViewEEViewSet,

View File

@@ -3,4 +3,5 @@ from .workspace import (
WorkspacePageViewSet,
WorkspacePagesDescriptionViewSet,
WorkspacePageVersionEndpoint,
WorkspacePageFavoriteEndpoint,
)

View File

@@ -455,3 +455,31 @@ class WorkspacePageVersionEndpoint(BaseAPIView):
# Serialize the page versions
serializer = WorkspacePageVersionSerializer(page_versions, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
class WorkspacePageFavoriteEndpoint(BaseAPIView):
model = UserFavorite
@check_feature_flag(FeatureFlag.WORKSPACE_PAGES)
def post(self, request, slug, pk):
workspace = Workspace.objects.get(slug=slug)
_ = UserFavorite.objects.create(
entity_identifier=pk,
entity_type="page",
user=request.user,
workspace_id=workspace.id,
)
return Response(status=status.HTTP_204_NO_CONTENT)
@check_feature_flag(FeatureFlag.WORKSPACE_PAGES)
def delete(self, request, slug, pk):
page_favorite = UserFavorite.objects.get(
project__isnull=True,
user=request.user,
workspace__slug=slug,
entity_identifier=pk,
entity_type="page",
)
page_favorite.delete(soft=False)
return Response(status=status.HTTP_204_NO_CONTENT)