PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.4
Booking for Appointments and Events Calendar – Amelia v1.2.4
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 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 / Bookable / Service / UpdateServiceStatusCommandHandler.php
ameliabooking / src / Application / Commands / Bookable / Service Last commit date
AddServiceCommand.php 1 year ago AddServiceCommandHandler.php 1 year ago DeleteServiceCommand.php 1 year ago DeleteServiceCommandHandler.php 1 year ago GetServiceCommand.php 1 year ago GetServiceCommandHandler.php 1 year ago GetServiceDeleteEffectCommand.php 1 year ago GetServiceDeleteEffectCommandHandler.php 1 year ago GetServicesCommand.php 1 year ago GetServicesCommandHandler.php 1 year ago UpdateServiceCommand.php 1 year ago UpdateServiceCommandHandler.php 1 year ago UpdateServiceStatusCommand.php 1 year ago UpdateServiceStatusCommandHandler.php 1 year ago UpdateServicesPositionsCommand.php 1 year ago UpdateServicesPositionsCommandHandler.php 1 year ago
UpdateServiceStatusCommandHandler.php
70 lines
1 <?php
2 /**
3 * @copyright © TMS-Plugins. All rights reserved.
4 * @licence See LICENCE.md for license details.
5 */
6
7 namespace AmeliaBooking\Application\Commands\Bookable\Service;
8
9 use AmeliaBooking\Application\Commands\CommandHandler;
10 use AmeliaBooking\Application\Commands\CommandResult;
11 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
12 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
13 use AmeliaBooking\Domain\Entity\Entities;
14 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
15 use AmeliaBooking\Infrastructure\Repository\Bookable\Service\ServiceRepository;
16
17 /**
18 * Class UpdateServiceStatusCommandHandler
19 *
20 * @package AmeliaBooking\Application\Commands\Bookable\Service
21 */
22 class UpdateServiceStatusCommandHandler extends CommandHandler
23 {
24 /**
25 * @var array
26 */
27 public $mandatoryFields = [
28 'status',
29 ];
30
31 /**
32 * @param UpdateServiceStatusCommand $command
33 *
34 * @return CommandResult
35 * @throws \Slim\Exception\ContainerValueNotFoundException
36 * @throws InvalidArgumentException
37 * @throws AccessDeniedException
38 * @throws \Interop\Container\Exception\ContainerException
39 * @throws QueryExecutionException
40 */
41 public function handle(UpdateServiceStatusCommand $command)
42 {
43 if (!$command->getPermissionService()->currentUserCanWrite(Entities::SERVICES)) {
44 throw new AccessDeniedException('You are not allowed to update service.');
45 }
46
47 $result = new CommandResult();
48
49 $this->checkMandatoryFields($command);
50
51 /** @var ServiceRepository $serviceRepository */
52 $serviceRepository = $this->container->get('domain.bookable.service.repository');
53
54 do_action('amelia_before_service_status_updated', $command->getArg('id'), $command->getField('status'));
55
56 $serviceRepository->updateStatusById(
57 $command->getArg('id'),
58 $command->getField('status')
59 );
60
61 do_action('amelia_after_service_status_updated', $command->getArg('id'), $command->getField('status'));
62
63 $result->setResult(CommandResult::RESULT_SUCCESS);
64 $result->setMessage('Successfully updated service');
65 $result->setData(true);
66
67 return $result;
68 }
69 }
70