PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 1 year ago GetNotificationsCommandHandler.php 6 months ago GetSMSNotificationsHistoryCommand.php 1 year ago GetSMSNotificationsHistoryCommandHandler.php 6 months ago SendAmeliaSmsApiRequestCommand.php 1 year ago SendAmeliaSmsApiRequestCommandHandler.php 2 years ago SendTestEmailCommand.php 1 year ago SendTestEmailCommandHandler.php 6 months ago SendUndeliveredNotificationsCommand.php 1 year ago SendUndeliveredNotificationsCommandHandler.php 2 years ago UpdateNotificationCommand.php 1 year ago UpdateNotificationCommandHandler.php 2 weeks ago UpdateNotificationStatusCommand.php 1 year ago UpdateNotificationStatusCommandHandler.php 6 months ago UpdateSMSNotificationHistoryCommand.php 1 year ago UpdateSMSNotificationHistoryCommandHandler.php 6 months ago UpdateSMSNotificationHistoryDirectlyCommand.php 6 months ago UpdateSMSNotificationHistoryDirectlyCommandHandler.php 6 months ago ValidateSMTPCredentialsCommand.php 4 months ago ValidateSMTPCredentialsCommandHandler.php 4 months ago
UpdateNotificationStatusCommandHandler.php
67 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 */
37 public function handle(UpdateNotificationStatusCommand $command)
38 {
39 if (!$command->getPermissionService()->currentUserCanWrite(Entities::NOTIFICATIONS)) {
40 throw new AccessDeniedException('You are not allowed to update notification');
41 }
42
43 $notificationId = (int)$command->getArg('id');
44
45 $result = new CommandResult();
46
47 $this->checkMandatoryFields($command);
48
49 /** @var NotificationRepository $notificationRepo */
50 $notificationRepo = $this->container->get('domain.notification.repository');
51
52 $status = $command->getField('status');
53
54 do_action('amelia_before_notification_status_updated', $status, $notificationId);
55
56 if ($notificationRepo->updateFieldById($notificationId, $status, 'status')) {
57 do_action('amelia_after_notification_status_updated', $status, $notificationId);
58
59 $result->setResult(CommandResult::RESULT_SUCCESS);
60 $result->setMessage('Successfully updated notification.');
61 $result->setData(true);
62 }
63
64 return $result;
65 }
66 }
67