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 / User / Provider / UpdateProviderStatusCommandHandler.php
ameliabooking / src / Application / Commands / User / Provider Last commit date
AddProviderCommand.php 1 year ago AddProviderCommandHandler.php 1 year ago GetProviderCommand.php 7 years ago GetProviderCommandHandler.php 1 year ago GetProvidersCommand.php 1 year ago GetProvidersCommandHandler.php 1 year ago UpdateProviderCommand.php 1 year ago UpdateProviderCommandHandler.php 1 year ago UpdateProviderStatusCommand.php 1 year 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