diff --git a/apiserver/plane/api/urls.py b/apiserver/plane/api/urls.py index ef53b4519..d4a9faa6f 100644 --- a/apiserver/plane/api/urls.py +++ b/apiserver/plane/api/urls.py @@ -58,6 +58,7 @@ from plane.api.views import ( ModuleIssueViewSet, UserLastProjectWithWorkspaceEndpoint, UserWorkSpaceIssues, + ProjectMemberUserEndpoint, ) from plane.api.views.project import AddTeamToProjectEndpoint @@ -320,6 +321,12 @@ urlpatterns = [ ProjectUserViewsEndpoint.as_view(), name="project-view", ), + path( + "workspaces//projects//project-members/me/", + ProjectMemberUserEndpoint.as_view(), + name="project-view", + ), + # End Projects # States path( "workspaces//projects//states/", diff --git a/apiserver/plane/api/views/__init__.py b/apiserver/plane/api/views/__init__.py index b55342f87..5706b1994 100644 --- a/apiserver/plane/api/views/__init__.py +++ b/apiserver/plane/api/views/__init__.py @@ -10,6 +10,7 @@ from .project import ( AddMemberToProjectEndpoint, ProjectJoinEndpoint, ProjectUserViewsEndpoint, + ProjectMemberUserEndpoint, ) from .people import ( PeopleEndpoint, diff --git a/apiserver/plane/api/views/project.py b/apiserver/plane/api/views/project.py index dafc62743..3a18ef85d 100644 --- a/apiserver/plane/api/views/project.py +++ b/apiserver/plane/api/views/project.py @@ -625,3 +625,27 @@ class ProjectUserViewsEndpoint(BaseAPIView): {"error": "Something went wrong please try again later"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR, ) + + +class ProjectMemberUserEndpoint(BaseAPIView): + def get(self, request, slug, project_id): + try: + + project_member = ProjectMember.objects.get( + project=project_id, workpsace__slug=slug, member=request.user + ) + serializer = ProjectMemberSerializer(project_member) + + return Response(serializer.data, status=status.HTTP_200_OK) + + except ProjectMember.DoesNotExist: + return Response( + {"error": "User not a member of the project"}, + status=status.HTTP_404_NOT_FOUND, + ) + except Exception as e: + capture_exception(e) + return Response( + {"error": "Something went wrong please try again later"}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR, + )