ref, id generator usage

This commit is contained in:
Yuri Kuznetsov
2023-03-13 08:54:38 +02:00
parent 1607240f5d
commit 9bb2197717

View File

@@ -30,13 +30,13 @@
namespace Espo\Core\FieldProcessing\Reminder;
use Espo\Core\Utils\DateTime as DateTimeUtil;
use Espo\Core\Utils\Id\RecordIdGenerator;
use Espo\Modules\Crm\Entities\Reminder;
use Espo\ORM\Entity;
use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Core\FieldProcessing\Saver as SaverInterface;
use Espo\Core\FieldProcessing\Saver\Params;
use Espo\Core\ORM\EntityManager;
use Espo\Core\Utils\Util;
use stdClass;
use DateInterval;
@@ -45,15 +45,20 @@ use DateTime;
/**
* @internal This class should not be removed as it's used by custom entities.
*
* @implements SaverInterface<Entity>
* @implements SaverInterface<CoreEntity>
*/
class Saver implements SaverInterface
{
protected string $dateAttribute = 'dateStart';
public function __construct(private EntityManager $entityManager)
{}
public function __construct(
private EntityManager $entityManager,
private RecordIdGenerator $idGenerator
) {}
/**
* @param CoreEntity $entity
*/
public function process(Entity $entity, Params $params): void
{
$entityType = $entity->getEntityType();
@@ -67,8 +72,6 @@ class Saver implements SaverInterface
return;
}
assert($entity instanceof CoreEntity);
$dateAttribute = $this->entityManager
->getDefs()
->getEntity($entityType)
@@ -163,7 +166,7 @@ class Saver implements SaverInterface
$remindAt->sub(new DateInterval('PT' . $seconds . 'S'));
foreach ($userIdList as $userId) {
$reminderId = Util::generateId();
$reminderId = $this->idGenerator->generate();
$query = $this->entityManager
->getQueryBuilder()
@@ -177,7 +180,7 @@ class Saver implements SaverInterface
'userId',
'remindAt',
'startAt',
'seconds'
'seconds',
])
->values([
'id' => $reminderId,