From d6aadb115deb23a9c1fc4f2450a2ba6df52890b4 Mon Sep 17 00:00:00 2001 From: pablohashescobar <118773738+pablohashescobar@users.noreply.github.com> Date: Wed, 15 Mar 2023 23:20:31 +0530 Subject: [PATCH] refactor: users endpoint to return invites and assigned issues count (#449) --- apiserver/plane/api/views/people.py | 30 ++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/apiserver/plane/api/views/people.py b/apiserver/plane/api/views/people.py index 154888812..de6129ac4 100644 --- a/apiserver/plane/api/views/people.py +++ b/apiserver/plane/api/views/people.py @@ -10,7 +10,8 @@ from plane.api.serializers import ( ) from plane.api.views.base import BaseViewSet, BaseAPIView -from plane.db.models import User, Workspace +from plane.db.models import User, Workspace, WorkspaceMemberInvite, Issue + class UserEndpoint(BaseViewSet): serializer_class = UserSerializer @@ -22,11 +23,34 @@ class UserEndpoint(BaseViewSet): def retrieve(self, request): try: workspace = Workspace.objects.get(pk=request.user.last_workspace_id) + workspace_invites = WorkspaceMemberInvite.objects.filter( + email=request.user.email + ).count() + assigned_issues = Issue.objects.filter(assignees__in=[request.user]).count() + return Response( - {"user": UserSerializer(request.user).data, "slug": workspace.slug} + { + "user": UserSerializer(request.user).data, + "slug": workspace.slug, + "workspace_invites": workspace_invites, + "assigned_issues": assigned_issues, + }, + status=status.HTTP_200_OK, ) except Workspace.DoesNotExist: - return Response({"user": UserSerializer(request.user).data, "slug": None}) + workspace_invites = WorkspaceMemberInvite.objects.filter( + email=request.user.email + ).count() + assigned_issues = Issue.objects.filter(assignees__in=[request.user]).count() + return Response( + { + "user": UserSerializer(request.user).data, + "slug": None, + "workspace_invites": workspace_invites, + "assigned_issues": assigned_issues, + }, + status=status.HTTP_200_OK, + ) except Exception as e: return Response( {"error": "Something went wrong please try again later"},