PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
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 / User / Provider / UpdateProviderStatusCommandHandler.php
ameliabooking / src / Application / Commands / User / Provider Last commit date
AddProviderCommand.php 7 years ago AddProviderCommandHandler.php 2 years ago GetProviderCommand.php 7 years ago GetProviderCommandHandler.php 1 year ago GetProvidersCommand.php 7 years ago GetProvidersCommandHandler.php 1 year ago UpdateProviderCommand.php 7 years ago UpdateProviderCommandHandler.php 1 year ago UpdateProviderStatusCommand.php 7 years ago UpdateProviderStatusCommandHandler.php 2 years ago
UpdateProviderStatusCommandHandler.php
67 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Commands\User\Provider;
4
5 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
6 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
7 use AmeliaBooking\Domain\Entity\Entities;
8 use AmeliaBooking\Application\Commands\CommandResult;
9 use AmeliaBooking\Application\Commands\CommandHandler;
10 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
11 use AmeliaBooking\Infrastructure\Repository\User\ProviderRepository;
12
13 /**
14 * Class UpdateProviderStatusCommandHandler
15 *
16 * @package AmeliaBooking\Application\Common
17 */
18 class UpdateProviderStatusCommandHandler extends CommandHandler
19 {
20 /**
21 * @var array
22 */
23 public $mandatoryFields = [
24 'status',
25 ];
26
27 /**
28 * @param UpdateProviderStatusCommand $command
29 *
30 * @return CommandResult
31 * @throws \Slim\Exception\ContainerException
32 * @throws \InvalidArgumentException
33 * @throws \Slim\Exception\ContainerValueNotFoundException
34 * @throws QueryExecutionException
35 * @throws InvalidArgumentException
36 * @throws AccessDeniedException
37 * @throws \Interop\Container\Exception\ContainerException
38 */
39 public function handle(UpdateProviderStatusCommand $command)
40 {
41 if (!$command->getPermissionService()->currentUserCanWrite(Entities::EMPLOYEES)) {
42 throw new AccessDeniedException('You are not allowed to update employee.');
43 }
44
45 $result = new CommandResult();
46
47 $this->checkMandatoryFields($command);
48
49 /** @var ProviderRepository $providerRepository */
50 $providerRepository = $this->container->get('domain.users.providers.repository');
51
52 $status = $command->getField('status');
53
54 do_action('amelia_before_provider_status_updated', $status, $command->getArg('id'));
55
56 $providerRepository->updateFieldById($command->getArg('id'), $status, 'status');
57
58 do_action('amelia_after_provider_status_updated', $status, $command->getArg('id'));
59
60 $result->setResult(CommandResult::RESULT_SUCCESS);
61 $result->setMessage('Successfully updated user');
62 $result->setData(true);
63
64 return $result;
65 }
66 }
67