PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 / Customer / UpdateCustomerStatusCommandHandler.php
ameliabooking / src / Application / Commands / User / Customer Last commit date
AddCustomerCommand.php 1 year ago AddCustomerCommandHandler.php 4 hours ago GetCustomerCommand.php 1 year ago GetCustomerCommandHandler.php 6 months ago GetCustomersCommand.php 1 year ago GetCustomersCommandHandler.php 2 months ago UpdateCustomerCommand.php 1 year ago UpdateCustomerCommandHandler.php 4 hours ago UpdateCustomerNoteCommand.php 3 months ago UpdateCustomerNoteCommandHandler.php 3 months ago UpdateCustomerStatusCommand.php 1 year ago UpdateCustomerStatusCommandHandler.php 6 months ago
UpdateCustomerStatusCommandHandler.php
59 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Commands\User\Customer;
4
5 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
6 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
7 use AmeliaBooking\Application\Commands\CommandResult;
8 use AmeliaBooking\Application\Commands\CommandHandler;
9 use AmeliaBooking\Domain\Entity\Entities;
10 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
11 use AmeliaBooking\Infrastructure\Repository\User\ProviderRepository;
12
13 /**
14 * Class UpdateCustomerStatusCommandHandler
15 *
16 * @package AmeliaBooking\Application\Common
17 */
18 class UpdateCustomerStatusCommandHandler extends CommandHandler
19 {
20 /**
21 * @var array
22 */
23 public $mandatoryFields = [
24 'status',
25 ];
26
27 /**
28 * @param UpdateCustomerStatusCommand $command
29 *
30 * @return CommandResult
31 * @throws \InvalidArgumentException
32 * @throws QueryExecutionException
33 * @throws InvalidArgumentException
34 */
35 public function handle(UpdateCustomerStatusCommand $command)
36 {
37 if (!$command->getPermissionService()->currentUserCanWrite(Entities::CUSTOMERS)) {
38 throw new AccessDeniedException('You are not allowed to update customers.');
39 }
40
41 $result = new CommandResult();
42
43 $this->checkMandatoryFields($command);
44
45 /** @var ProviderRepository $providerRepository */
46 $providerRepository = $this->container->get('domain.users.providers.repository');
47
48 $status = $command->getField('status');
49
50 $providerRepository->updateFieldById($command->getArg('id'), $status, 'status');
51
52 $result->setResult(CommandResult::RESULT_SUCCESS);
53 $result->setMessage('Successfully updated user');
54 $result->setData(true);
55
56 return $result;
57 }
58 }
59