From af477850b810f12ea4797935c5fde843083d8e17 Mon Sep 17 00:00:00 2001 From: sriramveeraghanta Date: Mon, 29 Sep 2025 21:26:36 +0530 Subject: [PATCH 1/5] feat: updated work item urls with issues. --- apps/api/plane/api/urls/__init__.py | 6 +- apps/api/plane/api/urls/label.py | 17 ++++ .../plane/api/urls/{issue.py => workitem.py} | 81 ++++++++++++++++--- 3 files changed, 89 insertions(+), 15 deletions(-) create mode 100644 apps/api/plane/api/urls/label.py rename apps/api/plane/api/urls/{issue.py => workitem.py} (53%) diff --git a/apps/api/plane/api/urls/__init__.py b/apps/api/plane/api/urls/__init__.py index ed187549d61..53c7667185f 100644 --- a/apps/api/plane/api/urls/__init__.py +++ b/apps/api/plane/api/urls/__init__.py @@ -1,21 +1,23 @@ from .project import urlpatterns as project_patterns from .state import urlpatterns as state_patterns -from .issue import urlpatterns as issue_patterns +from .workitem import urlpatterns as workitem_patterns from .cycle import urlpatterns as cycle_patterns from .module import urlpatterns as module_patterns from .intake import urlpatterns as intake_patterns from .member import urlpatterns as member_patterns from .asset import urlpatterns as asset_patterns from .user import urlpatterns as user_patterns +from .label import urlpatterns as label_patterns urlpatterns = [ *asset_patterns, *project_patterns, *state_patterns, - *issue_patterns, + *workitem_patterns, *cycle_patterns, *module_patterns, *intake_patterns, *member_patterns, *user_patterns, + *label_patterns, ] diff --git a/apps/api/plane/api/urls/label.py b/apps/api/plane/api/urls/label.py new file mode 100644 index 00000000000..f7ee57b1713 --- /dev/null +++ b/apps/api/plane/api/urls/label.py @@ -0,0 +1,17 @@ +from django.urls import path + +from plane.api.views import LabelListCreateAPIEndpoint, LabelDetailAPIEndpoint + + +urlpatterns = [ + path( + "workspaces//projects//labels/", + LabelListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), + name="label", + ), + path( + "workspaces//projects//labels//", + LabelDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), + name="label", + ), +] diff --git a/apps/api/plane/api/urls/issue.py b/apps/api/plane/api/urls/workitem.py similarity index 53% rename from apps/api/plane/api/urls/issue.py rename to apps/api/plane/api/urls/workitem.py index 8306a13159b..9237e62782e 100644 --- a/apps/api/plane/api/urls/issue.py +++ b/apps/api/plane/api/urls/workitem.py @@ -3,8 +3,6 @@ from plane.api.views import ( IssueListCreateAPIEndpoint, IssueDetailAPIEndpoint, - LabelListCreateAPIEndpoint, - LabelDetailAPIEndpoint, IssueLinkListCreateAPIEndpoint, IssueLinkDetailAPIEndpoint, IssueCommentListCreateAPIEndpoint, @@ -17,7 +15,8 @@ IssueSearchEndpoint, ) -urlpatterns = [ +# Deprecated url patterns +old_url_patterns = [ path( "workspaces//issues/search/", IssueSearchEndpoint.as_view(http_method_names=["get"]), @@ -38,16 +37,6 @@ IssueDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), name="issue", ), - path( - "workspaces//projects//labels/", - LabelListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), - name="label", - ), - path( - "workspaces//projects//labels//", - LabelDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), - name="label", - ), path( "workspaces//projects//issues//links/", IssueLinkListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), @@ -89,3 +78,69 @@ name="issue-attachment", ), ] + +# New url patterns with work-items as the prefix +new_url_patterns = [ + path( + "workspaces//work-items/search/", + IssueSearchEndpoint.as_view(http_method_names=["get"]), + name="issue-search", + ), + path( + "workspaces//work-items/-/", + WorkspaceIssueAPIEndpoint.as_view(http_method_names=["get"]), + name="issue-by-identifier", + ), + path( + "workspaces//projects//work-items/", + IssueListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), + name="issue", + ), + path( + "workspaces//projects//work-items//", + IssueDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), + name="issue", + ), + path( + "workspaces//projects//work-items//links/", + IssueLinkListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), + name="link", + ), + path( + "workspaces//projects//work-items//links//", + IssueLinkDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), + name="link", + ), + path( + "workspaces//projects//work-items//comments/", + IssueCommentListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), + name="comment", + ), + path( + "workspaces//projects//work-items//comments//", + IssueCommentDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), + name="comment", + ), + path( + "workspaces//projects//work-items//activities/", + IssueActivityListAPIEndpoint.as_view(http_method_names=["get"]), + name="activity", + ), + path( + "workspaces//projects//work-items//activities//", + IssueActivityDetailAPIEndpoint.as_view(http_method_names=["get"]), + name="activity", + ), + path( + "workspaces//projects//work-items//issue-attachments/", + IssueAttachmentListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), + name="attachment", + ), + path( + "workspaces//projects//work-items//issue-attachments//", + IssueAttachmentDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), + name="issue-attachment", + ), +] + +urlpatterns = old_url_patterns + new_url_patterns From d6a97fe55928c54b8bb20aa6b6f0be7f2f77683a Mon Sep 17 00:00:00 2001 From: sriram veeraghanta Date: Mon, 29 Sep 2025 22:20:27 +0530 Subject: [PATCH 2/5] chore: updated urls names --- apps/api/plane/api/urls/workitem.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/api/plane/api/urls/workitem.py b/apps/api/plane/api/urls/workitem.py index 9237e62782e..91657302fd3 100644 --- a/apps/api/plane/api/urls/workitem.py +++ b/apps/api/plane/api/urls/workitem.py @@ -84,62 +84,62 @@ path( "workspaces//work-items/search/", IssueSearchEndpoint.as_view(http_method_names=["get"]), - name="issue-search", + name="work-item-search", ), path( "workspaces//work-items/-/", WorkspaceIssueAPIEndpoint.as_view(http_method_names=["get"]), - name="issue-by-identifier", + name="work-item-by-identifier", ), path( "workspaces//projects//work-items/", IssueListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), - name="issue", + name="work-item-list", ), path( "workspaces//projects//work-items//", IssueDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), - name="issue", + name="work-item-detail", ), path( "workspaces//projects//work-items//links/", IssueLinkListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), - name="link", + name="work-item-link-list", ), path( "workspaces//projects//work-items//links//", IssueLinkDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), - name="link", + name="work-item-link-detail", ), path( "workspaces//projects//work-items//comments/", IssueCommentListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), - name="comment", + name="work-item-comment-list", ), path( "workspaces//projects//work-items//comments//", IssueCommentDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), - name="comment", + name="work-item-comment-detail", ), path( "workspaces//projects//work-items//activities/", IssueActivityListAPIEndpoint.as_view(http_method_names=["get"]), - name="activity", + name="work-item-activity-list", ), path( "workspaces//projects//work-items//activities//", IssueActivityDetailAPIEndpoint.as_view(http_method_names=["get"]), - name="activity", + name="work-item-activity-detail", ), path( "workspaces//projects//work-items//issue-attachments/", IssueAttachmentListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), - name="attachment", + name="work-item-attachment-list", ), path( "workspaces//projects//work-items//issue-attachments//", IssueAttachmentDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), - name="issue-attachment", + name="work-item-attachment-detail", ), ] From b49388841fb04ba84073349c8597a70079a16073 Mon Sep 17 00:00:00 2001 From: sriram veeraghanta Date: Mon, 29 Sep 2025 22:31:18 +0530 Subject: [PATCH 3/5] chore: rename file --- apps/api/plane/api/urls/__init__.py | 4 ++-- apps/api/plane/api/urls/{workitem.py => work_item.py} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename apps/api/plane/api/urls/{workitem.py => work_item.py} (100%) diff --git a/apps/api/plane/api/urls/__init__.py b/apps/api/plane/api/urls/__init__.py index 53c7667185f..1b58389bb56 100644 --- a/apps/api/plane/api/urls/__init__.py +++ b/apps/api/plane/api/urls/__init__.py @@ -1,6 +1,6 @@ from .project import urlpatterns as project_patterns from .state import urlpatterns as state_patterns -from .workitem import urlpatterns as workitem_patterns +from .work_item import urlpatterns as work_item_patterns from .cycle import urlpatterns as cycle_patterns from .module import urlpatterns as module_patterns from .intake import urlpatterns as intake_patterns @@ -13,7 +13,7 @@ *asset_patterns, *project_patterns, *state_patterns, - *workitem_patterns, + *work_item_patterns, *cycle_patterns, *module_patterns, *intake_patterns, diff --git a/apps/api/plane/api/urls/workitem.py b/apps/api/plane/api/urls/work_item.py similarity index 100% rename from apps/api/plane/api/urls/workitem.py rename to apps/api/plane/api/urls/work_item.py From 5e2678fd9d517206cc6213ae4a968c26ce315356 Mon Sep 17 00:00:00 2001 From: sriram veeraghanta Date: Mon, 29 Sep 2025 22:42:33 +0530 Subject: [PATCH 4/5] chore: code refactor for url ordering --- apps/api/plane/api/urls/__init__.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/api/plane/api/urls/__init__.py b/apps/api/plane/api/urls/__init__.py index 1b58389bb56..10cad2068e3 100644 --- a/apps/api/plane/api/urls/__init__.py +++ b/apps/api/plane/api/urls/__init__.py @@ -1,23 +1,23 @@ -from .project import urlpatterns as project_patterns -from .state import urlpatterns as state_patterns -from .work_item import urlpatterns as work_item_patterns +from .asset import urlpatterns as asset_patterns from .cycle import urlpatterns as cycle_patterns -from .module import urlpatterns as module_patterns from .intake import urlpatterns as intake_patterns +from .label import urlpatterns as label_patterns from .member import urlpatterns as member_patterns -from .asset import urlpatterns as asset_patterns +from .module import urlpatterns as module_patterns +from .project import urlpatterns as project_patterns +from .state import urlpatterns as state_patterns from .user import urlpatterns as user_patterns -from .label import urlpatterns as label_patterns +from .work_item import urlpatterns as work_item_patterns urlpatterns = [ *asset_patterns, - *project_patterns, - *state_patterns, - *work_item_patterns, *cycle_patterns, - *module_patterns, *intake_patterns, + *label_patterns, *member_patterns, + *module_patterns, + *project_patterns, + *state_patterns, *user_patterns, - *label_patterns, + *work_item_patterns, ] From 0a33da2cf33ab3511698ab9f2bef05f01a068b03 Mon Sep 17 00:00:00 2001 From: sriramveeraghanta Date: Tue, 30 Sep 2025 12:57:13 +0530 Subject: [PATCH 5/5] fix: renamed issue-atachments to attachments --- apps/api/plane/api/urls/work_item.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/api/plane/api/urls/work_item.py b/apps/api/plane/api/urls/work_item.py index 91657302fd3..7207df9579f 100644 --- a/apps/api/plane/api/urls/work_item.py +++ b/apps/api/plane/api/urls/work_item.py @@ -132,12 +132,12 @@ name="work-item-activity-detail", ), path( - "workspaces//projects//work-items//issue-attachments/", + "workspaces//projects//work-items//attachments/", IssueAttachmentListCreateAPIEndpoint.as_view(http_method_names=["get", "post"]), name="work-item-attachment-list", ), path( - "workspaces//projects//work-items//issue-attachments//", + "workspaces//projects//work-items//attachments//", IssueAttachmentDetailAPIEndpoint.as_view(http_method_names=["get", "patch", "delete"]), name="work-item-attachment-detail", ),