*/ class UserColumnsLoader implements Loader { private $entityManager; private $user; public function __construct(EntityManager $entityManager, User $user) { $this->entityManager = $entityManager; $this->user = $user; } public function process(Entity $entity, Params $params): void { $emailUser = $this->entityManager ->getRDBRepository('EmailUser') ->select(['isRead', 'isImportant', 'inTrash']) ->where([ 'deleted' => false, 'userId' => $this->user->getId(), 'emailId' => $entity->getId(), ]) ->findOne(); if (!$emailUser) { $entity->set('isRead', null); $entity->clear('isImportant'); $entity->clear('inTrash'); return; } $entity->set([ 'isRead' => $emailUser->get('isRead'), 'isImportant' => $emailUser->get('isImportant'), 'inTrash' => $emailUser->get('inTrash'), ]); } }