![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/mirasvit/module-report/src/Report/Repository/ |
<?php /** * Mirasvit * * This source file is subject to the Mirasvit Software License, which is available at https://mirasvit.com/license/. * Do not edit or add to this file if you wish to upgrade the to newer versions in the future. * If you wish to customize this module for your needs. * Please refer to http://www.magentocommerce.com for more information. * * @category Mirasvit * @package mirasvit/module-report * @version 1.4.27 * @copyright Copyright (C) 2024 Mirasvit (https://mirasvit.com/) */ namespace Mirasvit\Report\Repository; use Magento\Framework\EntityManager\EntityManager; use Magento\Framework\ObjectManagerInterface; use Mirasvit\Report\Api\Data\EmailInterface; use Mirasvit\Report\Api\Repository\Email\BlockRepositoryInterface; use Mirasvit\Report\Api\Repository\EmailRepositoryInterface; use Mirasvit\Report\Model\EmailFactory; use Mirasvit\Report\Model\ResourceModel\Email\CollectionFactory as CollectionFactory; class EmailRepository implements EmailRepositoryInterface { /** * @var EmailFactory */ private $factory; /** * @var CollectionFactory */ private $collectionFactory; /** * @var EntityManager */ private $entityManager; /** * @var ObjectManagerInterface */ private $objectManager; /** * @var array */ private $repositoryPool = []; /** * @var \Magento\Framework\Serialize\Serializer\Json */ private $serializer; /** * EmailRepository constructor. * @param EmailFactory $emailFactory * @param CollectionFactory $collectionFactory * @param EntityManager $entityManager * @param ObjectManagerInterface $objectManager * @param array $repositoryPool */ public function __construct( EmailFactory $emailFactory, CollectionFactory $collectionFactory, EntityManager $entityManager, ObjectManagerInterface $objectManager, \Magento\Framework\Serialize\Serializer\Json $serializer, array $repositoryPool = [] ) { $this->factory = $emailFactory; $this->collectionFactory = $collectionFactory; $this->entityManager = $entityManager; $this->objectManager = $objectManager; $this->repositoryPool = $repositoryPool; $this->serializer = $serializer; } /** * {@inheritdoc} */ public function getCollection() { return $this->collectionFactory->create(); } /** * {@inheritdoc} */ public function create() { return $this->factory->create(); } /** * {@inheritdoc} */ public function get($id) { $model = $this->create(); $this->entityManager->load($model, $id); return $model->getId() ? $model : false; } /** * {@inheritdoc} */ public function delete(EmailInterface $email) { $this->entityManager->delete($email); return true; } /** * {@inheritdoc} */ public function save(EmailInterface $email) { /** @var \Mirasvit\Report\Model\Email $email */ $email->setData(EmailInterface::BLOCKS_SERIALIZED, $this->serializer->serialize($email->getData(EmailInterface::BLOCKS))); return $this->entityManager->save($email); } /** * {@inheritdoc} */ public function getReports() { $reports = []; foreach ($this->repositoryPool as $repositoryClass) { /** @var BlockRepositoryInterface $repository */ $repository = $this->objectManager->get($repositoryClass); foreach ($repository->getBlocks() as $identifier => $block) { $reports[] = [ 'value' => $identifier, 'label' => $block, 'repository' => $repository, ]; } } return $reports; } }