PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.6
Booking for Appointments and Events Calendar – Amelia v2.4.6
2.4.7 2.4.6 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 month ago GetProviderCommand.php 7 years ago GetProviderCommandHandler.php 3 months ago GetProvidersCommand.php 1 year ago GetProvidersCommandHandler.php 6 months ago UpdateProviderCommand.php 1 year ago UpdateProviderCommandHandler.php 1 week ago UpdateProviderStatusCommand.php 1 year ago UpdateProviderStatusCommandHandler.php 1 week ago
UpdateProviderStatusCommandHandler.php
62 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\User\AbstractUser;
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 QueryExecutionException
32 * @throws InvalidArgumentException
33 * @throws AccessDeniedException
34 */
35 public function handle(UpdateProviderStatusCommand $command)
36 {
37 /** @var AbstractUser $user */
38 $user = $command->authorizeProviderWritePermission((int)$command->getArg('id'));
39
40 $result = new CommandResult();
41
42 $this->checkMandatoryFields($command);
43
44 /** @var ProviderRepository $providerRepository */
45 $providerRepository = $this->container->get('domain.users.providers.repository');
46
47 $status = $command->getField('status');
48
49 do_action('amelia_before_provider_status_updated', $status, $command->getArg('id'));
50
51 $providerRepository->updateFieldById($command->getArg('id'), $status, 'status');
52
53 do_action('amelia_after_provider_status_updated', $status, $command->getArg('id'));
54
55 $result->setResult(CommandResult::RESULT_SUCCESS);
56 $result->setMessage('Successfully updated user');
57 $result->setData(true);
58
59 return $result;
60 }
61 }
62