Use internal IDs in delete worker
This commit is contained in:
parent
ceb9f19991
commit
20e3eb78fb
1 changed files with 24 additions and 21 deletions
|
@ -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', ''));
|
||||||
|
|
Loading…
Reference in a new issue