From d95e4790a0834b9d2e504c8d8adc1f2253c525ae Mon Sep 17 00:00:00 2001 From: Khushboo Verma <43381712+vermakhushboo@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:06:28 +0530 Subject: [PATCH] Delete VCS documents when project is deleted --- src/Appwrite/Platform/Workers/Deletes.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Appwrite/Platform/Workers/Deletes.php b/src/Appwrite/Platform/Workers/Deletes.php index 1a2b378590..048a7c81ec 100644 --- a/src/Appwrite/Platform/Workers/Deletes.php +++ b/src/Appwrite/Platform/Workers/Deletes.php @@ -450,6 +450,23 @@ class Deletes extends Action Query::equal('projectInternalId', [$projectInternalId]) ], $dbForConsole); + // Delete VCS Installations, Repositories and Comments + $this->deleteByGroup('installations', [ + Query::equal('projectInternalId', [$projectInternalId]) + ], $dbForConsole, function (Document $document) use ($dbForConsole) { + $projectInternalId = $document->getAttribute('projectInternalId', ''); + $this->deleteByGroup('repositories', [ + Query::equal('installationInternalId', [$projectInternalId]), + ], $dbForConsole, function (Document $document) use ($dbForConsole) { + $providerRepositoryId = $document->getAttribute('providerRepositoryId', ''); + $projectId = $document->getAttribute('projectId', ''); + $this->deleteByGroup('vcsComments', [ + Query::equal('providerRepositoryId', [$providerRepositoryId]), + Query::equal('projectId', [$projectId]), + ], $dbForConsole); + }); + }); + // Delete metadata tables try { $dbForProject->deleteCollection('_metadata');