getContainer()->getPermissionsService()->currentUserCanWrite(Entities::NOTIFICATIONS)) {
throw new AccessDeniedException('You are not allowed to update notification');
}
$notificationId = (int)$command->getArg('id');
$result = new CommandResult();
$this->checkMandatoryFields($command);
/** @var NotificationRepository $notificationRepo */
$notificationRepo = $this->container->get('domain.notification.repository');
$currentNotification = $notificationRepo->getById($notificationId);
$content = str_replace(
['
', '
', '
', '
', '
'],
['', '', '
', '', ''],
$command->getField('content')
);
$notification = NotificationFactory::create([
'name' => $currentNotification->getName()->getValue(),
'status' => $currentNotification->getStatus()->getValue(),
'type' => $currentNotification->getType()->getValue(),
'time' => $command->getField('time'),
'timeBefore' => $command->getField('timeBefore'),
'timeAfter' => $command->getField('timeAfter'),
'sendTo' => $currentNotification->getSendTo()->getValue(),
'subject' => $command->getField('subject'),
'entity' => $command->getField('entity'),
'content' => $content
]);
if (!$notification instanceof Notification) {
$result->setResult(CommandResult::RESULT_ERROR);
$result->setMessage('Could not update notification entity.');
return $result;
}
if ($notificationRepo->update($notificationId, $notification)) {
$result->setResult(CommandResult::RESULT_SUCCESS);
$result->setMessage('Successfully updated notification.');
$result->setData([
Entities::NOTIFICATION => $notification->toArray()
]);
}
return $result;
}
}