Merge pull request #40 from pablohashescobar/feat/user_project_member

feat: create a dedicated endpoint to view to the logged in user's project attributes
This commit is contained in:
Vamsi Kurama 2022-12-17 00:50:24 +05:30 committed by GitHub
commit 7b46a73813
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 0 deletions

View File

@ -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/<str:slug>/projects/<uuid:project_id>/project-members/me/",
ProjectMemberUserEndpoint.as_view(),
name="project-view",
),
# End Projects
# States
path(
"workspaces/<str:slug>/projects/<uuid:project_id>/states/",

View File

@ -10,6 +10,7 @@ from .project import (
AddMemberToProjectEndpoint,
ProjectJoinEndpoint,
ProjectUserViewsEndpoint,
ProjectMemberUserEndpoint,
)
from .people import (
PeopleEndpoint,

View File

@ -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,
)