1
0
Fork 0
mirror of synced 2024-10-01 01:37:56 +13:00

Use internal IDs in delete worker

This commit is contained in:
Matej Bačo 2023-06-23 13:52:19 +02:00
parent ceb9f19991
commit 20e3eb78fb

View file

@ -237,6 +237,7 @@ class DeletesV1 extends Worker
protected function deleteCollection(Document $document, Document $project): void protected function deleteCollection(Document $document, Document $project): void
{ {
$collectionId = $document->getId(); $collectionId = $document->getId();
$collectionInternalId = $document->getInternalId();
$databaseId = $document->getAttribute('databaseId'); $databaseId = $document->getAttribute('databaseId');
$databaseInternalId = $document->getAttribute('databaseInternalId'); $databaseInternalId = $document->getAttribute('databaseInternalId');
@ -245,13 +246,13 @@ class DeletesV1 extends Worker
$dbForProject->deleteCollection('database_' . $databaseInternalId . '_collection_' . $document->getInternalId()); $dbForProject->deleteCollection('database_' . $databaseInternalId . '_collection_' . $document->getInternalId());
$this->deleteByGroup('attributes', [ $this->deleteByGroup('attributes', [
Query::equal('databaseId', [$databaseId]), Query::equal('databaseInternalId', [$databaseInternalId]),
Query::equal('collectionId', [$collectionId]) Query::equal('collectionInternalId', [$collectionInternalId])
], $dbForProject); ], $dbForProject);
$this->deleteByGroup('indexes', [ $this->deleteByGroup('indexes', [
Query::equal('databaseId', [$databaseId]), Query::equal('databaseInternalId', [$databaseInternalId]),
Query::equal('collectionId', [$collectionId]) Query::equal('collectionInternalId', [$collectionInternalId])
], $dbForProject); ], $dbForProject);
$this->deleteAuditLogsByResource('database/' . $databaseId . '/collection/' . $collectionId, $project); $this->deleteAuditLogsByResource('database/' . $databaseId . '/collection/' . $collectionId, $project);
@ -278,11 +279,11 @@ class DeletesV1 extends Worker
*/ */
protected function deleteMemberships(Document $document, Document $project): void protected function deleteMemberships(Document $document, Document $project): void
{ {
$teamId = $document->getAttribute('teamId', ''); $teamInternalId = $document->getInternalId();
// Delete Memberships // Delete Memberships
$this->deleteByGroup('memberships', [ $this->deleteByGroup('memberships', [
Query::equal('teamId', [$teamId]) Query::equal('teamInternalId', [$teamInternalId])
], $this->getProjectDB($project)); ], $this->getProjectDB($project));
} }
@ -311,19 +312,20 @@ class DeletesV1 extends Worker
protected function deleteUser(Document $document, Document $project): void protected function deleteUser(Document $document, Document $project): void
{ {
$userId = $document->getId(); $userId = $document->getId();
$userInternalId = $document->getInternalId();
$dbForProject = $this->getProjectDB($project); $dbForProject = $this->getProjectDB($project);
// Delete all sessions of this user from the sessions table and update the sessions field of the user record // Delete all sessions of this user from the sessions table and update the sessions field of the user record
$this->deleteByGroup('sessions', [ $this->deleteByGroup('sessions', [
Query::equal('userId', [$userId]) Query::equal('userInternalId', [$userInternalId])
], $dbForProject); ], $dbForProject);
$dbForProject->deleteCachedDocument('users', $userId); $dbForProject->deleteCachedDocument('users', $userId);
// Delete Memberships and decrement team membership counts // Delete Memberships and decrement team membership counts
$this->deleteByGroup('memberships', [ $this->deleteByGroup('memberships', [
Query::equal('userId', [$userId]) Query::equal('userInternalId', [$userInternalId])
], $dbForProject, function (Document $document) use ($dbForProject) { ], $dbForProject, function (Document $document) use ($dbForProject) {
if ($document->getAttribute('confirm')) { // Count only confirmed members if ($document->getAttribute('confirm')) { // Count only confirmed members
$teamId = $document->getAttribute('teamId'); $teamId = $document->getAttribute('teamId');
@ -341,7 +343,7 @@ class DeletesV1 extends Worker
// Delete tokens // Delete tokens
$this->deleteByGroup('tokens', [ $this->deleteByGroup('tokens', [
Query::equal('userId', [$userId]) Query::equal('userInternalId', [$userInternalId])
], $dbForProject); ], $dbForProject);
} }
@ -457,6 +459,7 @@ class DeletesV1 extends Worker
$dbForProject = $this->getProjectDB($project); $dbForProject = $this->getProjectDB($project);
$dbForConsole = $this->getConsoleDB(); $dbForConsole = $this->getConsoleDB();
$functionId = $document->getId(); $functionId = $document->getId();
$functionInternalId = $document->getInternalId();
/** /**
* Delete routes * Delete routes
@ -464,7 +467,7 @@ class DeletesV1 extends Worker
Console::info("Deleting routes for function " . $functionId); Console::info("Deleting routes for function " . $functionId);
$this->deleteByGroup('rules', [ $this->deleteByGroup('rules', [
Query::equal('resourceType', ['function']), Query::equal('resourceType', ['function']),
Query::equal('resourceInternalId', [$document->getInternalId()]), Query::equal('resourceInternalId', [$functionInternalId]),
Query::equal('projectInternalId', [$project->getInternalId()]) Query::equal('projectInternalId', [$project->getInternalId()])
], $dbForConsole, function (Document $document) use ($project) { ], $dbForConsole, function (Document $document) use ($project) {
$this->deleteRule($document, $project); $this->deleteRule($document, $project);
@ -476,7 +479,7 @@ class DeletesV1 extends Worker
Console::info("Deleting variables for function " . $functionId); Console::info("Deleting variables for function " . $functionId);
$this->deleteByGroup('variables', [ $this->deleteByGroup('variables', [
Query::equal('resourceType', ['function']), Query::equal('resourceType', ['function']),
Query::equal('resourceInternalId', [$document->getInternalId()]) Query::equal('resourceInternalId', [$functionInternalId])
], $dbForProject); ], $dbForProject);
/** /**
@ -484,11 +487,11 @@ class DeletesV1 extends Worker
*/ */
Console::info("Deleting deployments for function " . $functionId); Console::info("Deleting deployments for function " . $functionId);
$storageFunctions = $this->getFunctionsDevice($projectId); $storageFunctions = $this->getFunctionsDevice($projectId);
$deploymentIds = []; $deploymentInternalIds = [];
$this->deleteByGroup('deployments', [ $this->deleteByGroup('deployments', [
Query::equal('resourceId', [$functionId]) Query::equal('resourceInternalId', [$functionInternalId])
], $dbForProject, function (Document $document) use ($storageFunctions, &$deploymentIds) { ], $dbForProject, function (Document $document) use ($storageFunctions, &$deploymentInternalIds) {
$deploymentIds[] = $document->getId(); $deploymentInternalIds[] = $document->getInternalId();
if ($storageFunctions->delete($document->getAttribute('path', ''), true)) { if ($storageFunctions->delete($document->getAttribute('path', ''), true)) {
Console::success('Deleted deployment files: ' . $document->getAttribute('path', '')); Console::success('Deleted deployment files: ' . $document->getAttribute('path', ''));
} else { } else {
@ -501,10 +504,10 @@ class DeletesV1 extends Worker
*/ */
Console::info("Deleting builds for function " . $functionId); Console::info("Deleting builds for function " . $functionId);
$storageBuilds = $this->getBuildsDevice($projectId); $storageBuilds = $this->getBuildsDevice($projectId);
foreach ($deploymentIds as $deploymentId) { foreach ($deploymentInternalIds as $deploymentInternalId) {
$this->deleteByGroup('builds', [ $this->deleteByGroup('builds', [
Query::equal('deploymentId', [$deploymentId]) Query::equal('deploymentInternalId', [$deploymentInternalId])
], $dbForProject, function (Document $document) use ($storageBuilds, $deploymentId) { ], $dbForProject, function (Document $document) use ($storageBuilds) {
if ($storageBuilds->delete($document->getAttribute('path', ''), true)) { if ($storageBuilds->delete($document->getAttribute('path', ''), true)) {
Console::success('Deleted build files: ' . $document->getAttribute('path', '')); Console::success('Deleted build files: ' . $document->getAttribute('path', ''));
} else { } else {
@ -518,7 +521,7 @@ class DeletesV1 extends Worker
*/ */
Console::info("Deleting executions for function " . $functionId); Console::info("Deleting executions for function " . $functionId);
$this->deleteByGroup('executions', [ $this->deleteByGroup('executions', [
Query::equal('functionId', [$functionId]) Query::equal('functionInternalId', [$functionInternalId])
], $dbForProject); ], $dbForProject);
/** /**
@ -537,7 +540,7 @@ class DeletesV1 extends Worker
$projectId = $project->getId(); $projectId = $project->getId();
$dbForProject = $this->getProjectDB($project); $dbForProject = $this->getProjectDB($project);
$deploymentId = $document->getId(); $deploymentId = $document->getId();
$functionId = $document->getAttribute('resourceId'); $deploymentInternalId = $document->getInternalId();
/** /**
* Delete deployment files * Delete deployment files
@ -556,7 +559,7 @@ class DeletesV1 extends Worker
Console::info("Deleting builds for deployment " . $deploymentId); Console::info("Deleting builds for deployment " . $deploymentId);
$storageBuilds = $this->getBuildsDevice($projectId); $storageBuilds = $this->getBuildsDevice($projectId);
$this->deleteByGroup('builds', [ $this->deleteByGroup('builds', [
Query::equal('deploymentId', [$deploymentId]) Query::equal('deploymentInternalId', [$deploymentInternalId])
], $dbForProject, function (Document $document) use ($storageBuilds) { ], $dbForProject, function (Document $document) use ($storageBuilds) {
if ($storageBuilds->delete($document->getAttribute('path', ''), true)) { if ($storageBuilds->delete($document->getAttribute('path', ''), true)) {
Console::success('Deleted build files: ' . $document->getAttribute('path', '')); Console::success('Deleted build files: ' . $document->getAttribute('path', ''));