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 / User / Provider / UpdateProviderStatusCommandHandler.php
ameliabooking / src / Application / Commands / User / Provider Last commit date
AddProviderCommand.php 1 year ago AddProviderCommandHandler.php 3 days ago GetProviderCommand.php 7 years ago GetProviderCommandHandler.php 2 months ago GetProvidersCommand.php 1 year ago GetProvidersCommandHandler.php 4 months ago UpdateProviderCommand.php 1 year ago UpdateProviderCommandHandler.php 3 days ago UpdateProviderStatusCommand.php 1 year ago UpdateProviderStatusCommandHandler.php 6 months ago
UpdateProviderStatusCommandHandler.php
66 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 */
38 public function handle(UpdateProviderStatusCommand $command)
39 {
40 if (!$command->getPermissionService()->currentUserCanWrite(Entities::EMPLOYEES)) {
41 throw new AccessDeniedException('You are not allowed to update employee.');
42 }
43
44 $result = new CommandResult();
45
46 $this->checkMandatoryFields($command);
47
48 /** @var ProviderRepository $providerRepository */
49 $providerRepository = $this->container->get('domain.users.providers.repository');
50
51 $status = $command->getField('status');
52
53 do_action('amelia_before_provider_status_updated', $status, $command->getArg('id'));
54
55 $providerRepository->updateFieldById($command->getArg('id'), $status, 'status');
56
57 do_action('amelia_after_provider_status_updated', $status, $command->getArg('id'));
58
59 $result->setResult(CommandResult::RESULT_SUCCESS);
60 $result->setMessage('Successfully updated user');
61 $result->setData(true);
62
63 return $result;
64 }
65 }
66