From d93bc73f1351c10460e2e4fe0ca513bd937dec34 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 4 Feb 2025 15:43:02 +0200 Subject: [PATCH] userdata provider --- application/Espo/Repositories/UserData.php | 1 + .../Espo/Tools/User/UserDataProvider.php | 58 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 application/Espo/Tools/User/UserDataProvider.php diff --git a/application/Espo/Repositories/UserData.php b/application/Espo/Repositories/UserData.php index 7269c1b484..1256138ee3 100644 --- a/application/Espo/Repositories/UserData.php +++ b/application/Espo/Repositories/UserData.php @@ -35,6 +35,7 @@ use Espo\Entities\UserData as UserDataEntity; use Espo\Core\Repositories\Database; /** + * @internal Use Espo\Tools\User\UserDataProvider. * @extends Database */ class UserData extends Database diff --git a/application/Espo/Tools/User/UserDataProvider.php b/application/Espo/Tools/User/UserDataProvider.php new file mode 100644 index 0000000000..8f14fd8c7b --- /dev/null +++ b/application/Espo/Tools/User/UserDataProvider.php @@ -0,0 +1,58 @@ +. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU Affero General Public License version 3. + * + * In accordance with Section 7(b) of the GNU Affero General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +namespace Espo\Tools\User; + +use Espo\Entities\UserData; +use Espo\ORM\EntityManager; +use Espo\Repositories\UserData as UserDataRepository; +use RuntimeException; + +class UserDataProvider +{ + public function __construct( + private EntityManager $entityManager, + ) {} + + public function get(string $userId): ?UserData + { + return $this->getRepository()->getByUserId($userId); + } + + private function getRepository(): UserDataRepository + { + $repository = $this->entityManager->getRepository(UserData::ENTITY_TYPE); + + if (!$repository instanceof UserDataRepository) { + throw new RuntimeException(); + } + + return $repository; + } +}