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 / Bookable / Service / UpdateServiceStatusCommandHandler.php
ameliabooking / src / Application / Commands / Bookable / Service Last commit date
AddServiceCommand.php 6 months ago AddServiceCommandHandler.php 6 months ago DeleteServiceCommand.php 6 months ago DeleteServiceCommandHandler.php 3 months ago GetServiceCommand.php 6 months ago GetServiceCommandHandler.php 6 months ago GetServiceDeleteEffectCommand.php 1 year ago GetServiceDeleteEffectCommandHandler.php 3 months ago GetServicesCommand.php 6 months ago GetServicesCommandHandler.php 2 weeks ago UpdateServiceCommand.php 6 months ago UpdateServiceCommandHandler.php 6 months ago UpdateServiceStatusCommand.php 6 months ago UpdateServiceStatusCommandHandler.php 6 months ago UpdateServicesPositionsCommand.php 1 year ago UpdateServicesPositionsCommandHandler.php 1 year ago
UpdateServiceStatusCommandHandler.php
71 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. 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 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->updateFieldById(
57 $command->getArg('id'),
58 $command->getField('status'),
59 '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