From b0e74b6d7b07d944c5dac86af1b08d52707d9b6a Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Sat, 29 May 2021 02:25:22 +0530 Subject: [PATCH] fix(teams): incorrect membership count in teams --- app/controllers/api/teams.php | 2 +- app/views/console/users/user.phtml | 2 +- app/workers/deletes.php | 17 +++++++---------- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index ec10b519c..f2c417911 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -790,7 +790,7 @@ App::delete('/v1/teams/:teamId/memberships/:membershipId') if ($membership->getAttribute('confirm')) { // Count only confirmed members $team = $projectDB->updateDocument(\array_merge($team->getArrayCopy(), [ - 'sum' => $team->getAttribute('sum', 0) - 1, + 'sum' => \max($team->getAttribute('sum', 0) - 1, 0), ])); } diff --git a/app/views/console/users/user.phtml b/app/views/console/users/user.phtml index 14724c79a..e8b3b04ea 100644 --- a/app/views/console/users/user.phtml +++ b/app/views/console/users/user.phtml @@ -110,7 +110,7 @@ data-analytics-event="submit" data-analytics-category="console" data-analytics-label="Delete User" - data-service="users.deleteUser" + data-service="users.delete" data-event="submit" data-param-user-id="{{router.params.id}}" data-success="alert,trigger,redirect" diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 3ae366afd..005a4e083 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -128,24 +128,21 @@ class DeletesV1 } } - var_dump("Hi there! Gonna delete memberships"); - // Delete Memberships and update the team membership counts + // Delete Memberships and decrement team membership counts $this->deleteByGroup([ '$collection='.Database::SYSTEM_COLLECTION_MEMBERSHIPS, 'userId='.$document->getId(), - ], $this->getProjectDB($projectId), function(Document $document) use ($projectId,){ - var_dump("In call back "); - print_r($document); + ], $this->getProjectDB($projectId), function(Document $document) use ($projectId) { if ($document->getAttribute('confirm')) { // Count only confirmed members $teamId = $document->getAttribute('teamId'); $team = $this->getProjectDB($projectId)->getDocument($teamId); - print_r($team); - // $team = $this->getProjectDB($projectId)->updateDocument(\array_merge($team->getArrayCopy(), [ - // 'sum' => $team->getAttribute('sum', 0) - 1, - // ])); + if(!$team->isEmpty()) { + $team = $this->getProjectDB($projectId)->updateDocument(\array_merge($team->getArrayCopy(), [ + 'sum' => \max($team->getAttribute('sum', 0) - 1, 0), + ])); + } } - }); }