b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / Mirasvit / Report / Repository /
Filename/home/Mirasvit/Report/Repository/EmailRepository.php
Size3.67 kb
Permissionrw-r--r--
Ownerroot : root
Create time01-Jul-2024 20:52
Last modified06-Apr-2021 18:06
Last accessed21-Aug-2025 21:57
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?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.3.101
* @copyright Copyright (C) 2020 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 = [];


/**
* 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,
array $repositoryPool = []
) {
$this->factory = $emailFactory;
$this->collectionFactory = $collectionFactory;
$this->entityManager = $entityManager;
$this->objectManager = $objectManager;
$this->repositoryPool = $repositoryPool;
}

/**
* {@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, \Zend_Json::encode($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;
}
}