Update migration for audit collection
1. Remove the userInternalId attribute 2. Replace userId in audit documents with userInternalId and put userId in data
This commit is contained in:
parent
9908a9021f
commit
cd78706944
1 changed files with 38 additions and 0 deletions
|
@ -133,6 +133,16 @@ class V18 extends Migration
|
|||
Console::warning("'options' from {$id}: {$th->getMessage()}");
|
||||
}
|
||||
break;
|
||||
case 'audit':
|
||||
try {
|
||||
/**
|
||||
* Delete 'userInternalId' attribute
|
||||
*/
|
||||
$this->projectDB->deleteAttribute($id, 'userInternalId');
|
||||
} catch (\Throwable $th) {
|
||||
Console::warning("'userInternalId' from {$id}: {$th->getMessage()}");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -195,6 +205,34 @@ class V18 extends Migration
|
|||
Console::warning($th->getMessage());
|
||||
}
|
||||
break;
|
||||
case 'audit':
|
||||
/**
|
||||
* Set the userId to the userInternalId and add userId to data
|
||||
*/
|
||||
try {
|
||||
$userId = $document->getAttribute('userId');
|
||||
$data = $document->getAttribute('data', []);
|
||||
$mode = $data['mode'] ?? 'default';
|
||||
$user = match ($mode) {
|
||||
'admin' => $this->consoleDB->getDocument('users', $userId),
|
||||
default => $this->projectDB->getDocument('users', $userId),
|
||||
};
|
||||
|
||||
if ($user->isEmpty()) {
|
||||
// The audit userId could already be an internal Id.
|
||||
// Otherwise, the user could have been deleted.
|
||||
// Nonetheless, there's nothing else we can do here.
|
||||
break;
|
||||
}
|
||||
$internalId = $user->getInternalId();
|
||||
$document->setAttribute('userId', $internalId);
|
||||
$data = $document->getAttribute('data', []);
|
||||
$data['userId'] = $user->getId();
|
||||
$document->setAttribute('data', $data);
|
||||
} catch (\Throwable $th) {
|
||||
Console::warning($th->getMessage());
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return $document;
|
||||
|
|
Loading…
Reference in a new issue