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