* refactor: folder structure for urls * chore: deleted the urls file * chore: proper naming for urls * chore: reset password url * dev: create refresh token endpoint and endpoint to get settings for user * dev: workspace member me serializer * dev: remove extra fields from project list and retrieve endpoints * dev: update the project list endpoint with member details and deploy boolean * dev: enable user favorite project endpoint and remove is_favorite from project list * dev: analytics refactoring * dev: revert is_favorite settings * dev: create new serializer for project list and add pagination from projects * dev: fix analytics api * dev: module and cycle * dev: update error message, fix module analytics and add null check for labels * dev: member serializer * dev: dynamic base serializer * dev: remove view issues endpoint * dev: url pattern updates * dev: add comments to delete this file * dev: last workspace id * dev: analytics export * dev: export analytics validation * dev: update python runtime * dev: update notification endpoints * dev: cycle and validation fix * dev: issue activity validation when creating updating and deleting issue and comments * dev: update issue activity logging for link and reactions * dev: update module issue activity logging * dev: update module issue activity --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
332 lines
9.5 KiB
Python
332 lines
9.5 KiB
Python
from django.urls import path
|
|
|
|
|
|
from plane.api.views import (
|
|
IssueViewSet,
|
|
LabelViewSet,
|
|
BulkCreateIssueLabelsEndpoint,
|
|
BulkDeleteIssuesEndpoint,
|
|
BulkImportIssuesEndpoint,
|
|
UserWorkSpaceIssues,
|
|
SubIssuesEndpoint,
|
|
IssueLinkViewSet,
|
|
IssueAttachmentEndpoint,
|
|
ExportIssuesEndpoint,
|
|
IssueActivityEndpoint,
|
|
IssueCommentViewSet,
|
|
IssueSubscriberViewSet,
|
|
IssueReactionViewSet,
|
|
CommentReactionViewSet,
|
|
IssuePropertyViewSet,
|
|
IssueArchiveViewSet,
|
|
IssueRelationViewSet,
|
|
IssueDraftViewSet,
|
|
)
|
|
|
|
|
|
urlpatterns = [
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/",
|
|
IssueViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:pk>/",
|
|
IssueViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-labels/",
|
|
LabelViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-labels",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-labels/<uuid:pk>/",
|
|
LabelViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-labels",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/bulk-create-labels/",
|
|
BulkCreateIssueLabelsEndpoint.as_view(),
|
|
name="project-bulk-labels",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/bulk-delete-issues/",
|
|
BulkDeleteIssuesEndpoint.as_view(),
|
|
name="project-issues-bulk",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/bulk-import-issues/<str:service>/",
|
|
BulkImportIssuesEndpoint.as_view(),
|
|
name="project-issues-bulk",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/my-issues/",
|
|
UserWorkSpaceIssues.as_view(),
|
|
name="workspace-issues",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/sub-issues/",
|
|
SubIssuesEndpoint.as_view(),
|
|
name="sub-issues",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-links/",
|
|
IssueLinkViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-links",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-links/<uuid:pk>/",
|
|
IssueLinkViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-links",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-attachments/",
|
|
IssueAttachmentEndpoint.as_view(),
|
|
name="project-issue-attachments",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-attachments/<uuid:pk>/",
|
|
IssueAttachmentEndpoint.as_view(),
|
|
name="project-issue-attachments",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/export-issues/",
|
|
ExportIssuesEndpoint.as_view(),
|
|
name="export-issues",
|
|
),
|
|
## End Issues
|
|
## Issue Activity
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/history/",
|
|
IssueActivityEndpoint.as_view(),
|
|
name="project-issue-history",
|
|
),
|
|
## Issue Activity
|
|
## IssueComments
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/comments/",
|
|
IssueCommentViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-comment",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/comments/<uuid:pk>/",
|
|
IssueCommentViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-comment",
|
|
),
|
|
## End IssueComments
|
|
# Issue Subscribers
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-subscribers/",
|
|
IssueSubscriberViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-subscribers",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-subscribers/<uuid:subscriber_id>/",
|
|
IssueSubscriberViewSet.as_view({"delete": "destroy"}),
|
|
name="project-issue-subscribers",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/subscribe/",
|
|
IssueSubscriberViewSet.as_view(
|
|
{
|
|
"get": "subscription_status",
|
|
"post": "subscribe",
|
|
"delete": "unsubscribe",
|
|
}
|
|
),
|
|
name="project-issue-subscribers",
|
|
),
|
|
## End Issue Subscribers
|
|
# Issue Reactions
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/reactions/",
|
|
IssueReactionViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-reactions",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/reactions/<str:reaction_code>/",
|
|
IssueReactionViewSet.as_view(
|
|
{
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-reactions",
|
|
),
|
|
## End Issue Reactions
|
|
# Comment Reactions
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/comments/<uuid:comment_id>/reactions/",
|
|
CommentReactionViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-comment-reactions",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/comments/<uuid:comment_id>/reactions/<str:reaction_code>/",
|
|
CommentReactionViewSet.as_view(
|
|
{
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-comment-reactions",
|
|
),
|
|
## End Comment Reactions
|
|
## IssueProperty
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-properties/",
|
|
IssuePropertyViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-roadmap",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-properties/<uuid:pk>/",
|
|
IssuePropertyViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"put": "update",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-roadmap",
|
|
),
|
|
## IssueProperty Ebd
|
|
## Issue Archives
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/archived-issues/",
|
|
IssueArchiveViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
}
|
|
),
|
|
name="project-issue-archive",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/archived-issues/<uuid:pk>/",
|
|
IssueArchiveViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-archive",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/unarchive/<uuid:pk>/",
|
|
IssueArchiveViewSet.as_view(
|
|
{
|
|
"post": "unarchive",
|
|
}
|
|
),
|
|
name="project-issue-archive",
|
|
),
|
|
## End Issue Archives
|
|
## Issue Relation
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-relation/",
|
|
IssueRelationViewSet.as_view(
|
|
{
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="issue-relation",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issues/<uuid:issue_id>/issue-relation/<uuid:pk>/",
|
|
IssueRelationViewSet.as_view(
|
|
{
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="issue-relation",
|
|
),
|
|
## End Issue Relation
|
|
## Issue Drafts
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-drafts/",
|
|
IssueDraftViewSet.as_view(
|
|
{
|
|
"get": "list",
|
|
"post": "create",
|
|
}
|
|
),
|
|
name="project-issue-draft",
|
|
),
|
|
path(
|
|
"workspaces/<str:slug>/projects/<uuid:project_id>/issue-drafts/<uuid:pk>/",
|
|
IssueDraftViewSet.as_view(
|
|
{
|
|
"get": "retrieve",
|
|
"patch": "partial_update",
|
|
"delete": "destroy",
|
|
}
|
|
),
|
|
name="project-issue-draft",
|
|
),
|
|
]
|