PluginProbe
Booking for Appointments and Events Calendar – Amelia / 2.4.2
Booking for Appointments and Events Calendar – Amelia v2.4.2
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 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 All 59 releases
ameliabooking / src / Application / Commands / Notification / UpdateSMSNotificationHistoryDirectlyCommandHandler.php

UpdateSMSNotificationHistoryDirectlyCommandHandler.php in Booking for Appointments and Events Calendar – Amelia 2.4.2, at src/Application/Commands/Notification/UpdateSMSNotificationHistoryDirectlyCommandHandler.php

57 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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\Infrastructure\Common\Exceptions\QueryExecutionException;
9 use AmeliaBooking\Infrastructure\Repository\Notification\NotificationSMSHistoryRepository;
10
11 /**
12 * Class UpdateSMSNotificationHistoryDirectlyCommandHandler
13 *
14 * @package AmeliaBooking\Application\Commands\Notification
15 */
16 class UpdateSMSNotificationHistoryDirectlyCommandHandler extends CommandHandler
17 {
18 /**
19 * @param UpdateSMSNotificationHistoryDirectlyCommand $command
20 *
21 * @return CommandResult
22 * @throws QueryExecutionException
23 * @throws AccessDeniedException
24 */
25 public function handle(UpdateSMSNotificationHistoryDirectlyCommand $command)
26 {
27 if (!$this->getContainer()->getPermissionsService()->currentUserCanWrite('notifications')) {
28 throw new AccessDeniedException('You are not allowed to update sms notifications.');
29 }
30
31 $result = new CommandResult();
32
33 /** @var NotificationSMSHistoryRepository $notificationsSMSHistoryRepo */
34 $notificationsSMSHistoryRepo = $this->container->get('domain.notificationSMSHistory.repository');
35
36 $updateData = [
37 'status' => $command->getField('status'),
38 'price' => $command->getField('price'),
39 'logId' => $command->getField('logId'),
40 'dateTime' => $command->getField('dateTime')
41 ];
42
43 $updateData = apply_filters('amelia_before_sms_notification_history_updated_filter', $updateData, $command->getArg('id'));
44
45 do_action('amelia_before_sms_notification_history_updated', $updateData, $command->getArg('id'));
46
47 if ($notificationsSMSHistoryRepo->update((int)$command->getArg('id'), $updateData)) {
48 do_action('amelia_after_sms_notification_history_updated', $updateData, $command->getArg('id'));
49
50 $result->setResult(CommandResult::RESULT_SUCCESS);
51 $result->setMessage('Successfully updated SMS notification history.');
52 }
53
54 return $result;
55 }
56 }
57