From fbcf7bbead71cc98b5c2a7fa250bb9c213254638 Mon Sep 17 00:00:00 2001 From: Daniel Subiabre Date: Thu, 11 Apr 2024 15:49:19 +0200 Subject: [PATCH] Make UsersPump progressive and code style fixes --- src/Library/Benzina/Pump/UsersPump.php | 31 ++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/Library/Benzina/Pump/UsersPump.php b/src/Library/Benzina/Pump/UsersPump.php index 1d25d24..2d84230 100644 --- a/src/Library/Benzina/Pump/UsersPump.php +++ b/src/Library/Benzina/Pump/UsersPump.php @@ -8,6 +8,7 @@ use Doctrine\ORM\EntityManagerInterface; class UsersPump implements PumpInterface { use ArrayPumpTrait; + use ProgressivePumpTrait; private const USER_KEYS = [ 'id', @@ -62,21 +63,22 @@ class UsersPump implements PumpInterface public function process(mixed $data): void { - foreach ($data as $key => $userData) { - $username = $this->normalizeUsername($userData['id']); - if (!$username) { - $username = $this->normalizeUsername($userData['email']); + $pumped = $this->getPumped(User::class, $data, ['migratedReference' => 'id']); + + foreach ($data as $key => $record) { + if ($this->isPumped($record, $pumped)) { + continue; } $user = new User; - $user->setUsername($username); - $user->setPassword($userData['password'] ?? ""); - $user->setEmail($userData['email']); - $user->setName($userData['name']); + $user->setUsername($this->getUsername($record)); + $user->setPassword($record['password'] ?? ""); + $user->setEmail($record['email']); + $user->setName($record['name']); $user->setActive(false); $user->setConfirmed(false); $user->setMigrated(true); - $user->setMigratedReference($userData['id']); + $user->setMigratedReference($record['id']); $this->entityManager->persist($user); } @@ -102,4 +104,15 @@ class UsersPump implements PumpInterface return $username; } + + private function getUsername(array $data): string + { + $username = $this->normalizeUsername($data['id']); + + if (!$username) { + $username = $this->normalizeUsername($data['email']); + } + + return $username; + } }