PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.11
Booking for Appointments and Events Calendar – Amelia v1.2.11
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 / GetCustomerCommandHandler.php
ameliabooking / src / Application / Commands / User / Customer Last commit date
AddCustomerCommand.php 7 years ago AddCustomerCommandHandler.php 2 years ago GetCustomerCommand.php 7 years ago GetCustomerCommandHandler.php 2 years ago GetCustomersCommand.php 7 years ago GetCustomersCommandHandler.php 2 years ago UpdateCustomerCommand.php 7 years ago UpdateCustomerCommandHandler.php 1 year ago
GetCustomerCommandHandler.php
66 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\Domain\Entity\Entities;
8 use AmeliaBooking\Domain\Entity\User\AbstractUser;
9 use AmeliaBooking\Application\Commands\CommandResult;
10 use AmeliaBooking\Application\Commands\CommandHandler;
11 use AmeliaBooking\Domain\Repository\User\UserRepositoryInterface;
12
13 /**
14 * Class GetCustomerCommandHandler
15 *
16 * @package AmeliaBooking\Application\Commands\User\Customer
17 */
18 class GetCustomerCommandHandler extends CommandHandler
19 {
20 /**
21 * @param GetCustomerCommand $command
22 *
23 * @return CommandResult
24 * @throws \Slim\Exception\ContainerValueNotFoundException
25 * @throws AccessDeniedException
26 * @throws InvalidArgumentException
27 * @throws \Interop\Container\Exception\ContainerException
28 */
29 public function handle(GetCustomerCommand $command)
30 {
31 $result = new CommandResult();
32
33 $this->checkMandatoryFields($command);
34
35 /** @var UserRepositoryInterface $userRepository */
36 $userRepository = $this->getContainer()->get('domain.users.repository');
37
38 $user = $userRepository->getById((int)$command->getField('id'));
39
40 if (!$user instanceof AbstractUser) {
41 $result->setResult(CommandResult::RESULT_ERROR);
42 $result->setMessage('Could not retrieve user');
43
44 return $result;
45 }
46
47 if (!$command->getPermissionService()->currentUserCanRead($user->getType())) {
48 throw new AccessDeniedException('You are not allowed to read user');
49 }
50
51 $userArray = $user->toArray();
52
53 $userArray = apply_filters('amelia_get_customer_filter', $userArray);
54
55 do_action('amelia_get_customer', $userArray);
56
57 $result->setResult(CommandResult::RESULT_SUCCESS);
58 $result->setMessage('Successfully retrieved user');
59 $result->setData([
60 Entities::USER => $userArray
61 ]);
62
63 return $result;
64 }
65 }
66