PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Application / Commands / Notification / UpdateNotificationStatusCommandHandler.php
ameliabooking / src / Application / Commands / Notification Last commit date
GetNotificationsCommand.php 7 years ago GetNotificationsCommandHandler.php 2 years ago GetSMSNotificationsHistoryCommand.php 7 years ago GetSMSNotificationsHistoryCommandHandler.php 2 years ago SendAmeliaSmsApiRequestCommand.php 7 years ago SendAmeliaSmsApiRequestCommandHandler.php 2 years ago SendTestEmailCommand.php 7 years ago SendTestEmailCommandHandler.php 2 years ago SendUndeliveredNotificationsCommand.php 4 years ago SendUndeliveredNotificationsCommandHandler.php 2 years ago UpdateNotificationCommand.php 7 years ago UpdateNotificationCommandHandler.php 2 years ago UpdateNotificationStatusCommand.php 7 years ago UpdateNotificationStatusCommandHandler.php 2 years ago UpdateSMSNotificationHistoryCommand.php 7 years ago UpdateSMSNotificationHistoryCommandHandler.php 1 year ago
UpdateNotificationStatusCommandHandler.php
68 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Commands\Notification;
4
5 use AmeliaBooking\Application\Commands\CommandHandler;
6 use AmeliaBooking\Application\Commands\CommandResult;
7 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
8 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
9 use AmeliaBooking\Domain\Entity\Entities;
10 use AmeliaBooking\Domain\Entity\Notification\Notification;
11 use AmeliaBooking\Domain\Factory\Notification\NotificationFactory;
12 use AmeliaBooking\Infrastructure\Common\Exceptions\NotFoundException;
13 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
14 use AmeliaBooking\Infrastructure\Repository\Notification\NotificationRepository;
15
16 /**
17 * Class UpdateNotificationStatusCommandHandler
18 *
19 * @package AmeliaBooking\Application\Commands\Notification
20 */
21 class UpdateNotificationStatusCommandHandler extends CommandHandler
22 {
23 public $mandatoryFields = [
24 'status'
25 ];
26
27 /**
28 * @param UpdateNotificationStatusCommand $command
29 *
30 * @return CommandResult
31 * @throws \Slim\Exception\ContainerValueNotFoundException
32 * @throws AccessDeniedException
33 * @throws InvalidArgumentException
34 * @throws NotFoundException
35 * @throws QueryExecutionException
36 * @throws \Interop\Container\Exception\ContainerException
37 */
38 public function handle(UpdateNotificationStatusCommand $command)
39 {
40 if (!$command->getPermissionService()->currentUserCanWrite(Entities::NOTIFICATIONS)) {
41 throw new AccessDeniedException('You are not allowed to update notification');
42 }
43
44 $notificationId = (int)$command->getArg('id');
45
46 $result = new CommandResult();
47
48 $this->checkMandatoryFields($command);
49
50 /** @var NotificationRepository $notificationRepo */
51 $notificationRepo = $this->container->get('domain.notification.repository');
52
53 $status = $command->getField('status');
54
55 do_action('amelia_before_notification_status_updated', $status, $notificationId);
56
57 if ($notificationRepo->updateFieldById($notificationId, $status, 'status')) {
58 do_action('amelia_after_notification_status_updated', $status, $notificationId);
59
60 $result->setResult(CommandResult::RESULT_SUCCESS);
61 $result->setMessage('Successfully updated notification.');
62 $result->setData(true);
63 }
64
65 return $result;
66 }
67 }
68