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 / GetWPUsersCommandHandler.php
ameliabooking / src / Application / Commands / User Last commit date
Customer 1 year ago Provider 1 year ago DeleteUserCommand.php 1 year ago DeleteUserCommandHandler.php 1 year ago GetCurrentUserCommand.php 1 year ago GetCurrentUserCommandHandler.php 1 year ago GetUserDeleteEffectCommand.php 1 year ago GetUserDeleteEffectCommandHandler.php 1 year ago GetWPUsersCommand.php 1 year ago GetWPUsersCommandHandler.php 1 year ago
GetWPUsersCommandHandler.php
69 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Commands\User;
4
5 use AmeliaBooking\Application\Commands\CommandHandler;
6 use AmeliaBooking\Application\Commands\CommandResult;
7 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
8 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
9 use AmeliaBooking\Domain\Entity\Entities;
10 use AmeliaBooking\Infrastructure\Repository\User\WPUserRepository;
11 use AmeliaBooking\Infrastructure\WP\UserService\UserService;
12
13 /**
14 * Class GetWPUsersCommandHandler
15 *
16 * @package AmeliaBooking\Application\Commands\User
17 */
18 class GetWPUsersCommandHandler extends CommandHandler
19 {
20 /**
21 * @param GetWPUsersCommand $command
22 *
23 * @return CommandResult
24 * @throws AccessDeniedException
25 * @throws InvalidArgumentException
26 * @throws \AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException
27 * @throws \Interop\Container\Exception\ContainerException
28 */
29 public function handle(GetWPUsersCommand $command)
30 {
31 if (!$command->getPermissionService()->currentUserCanRead(Entities::EMPLOYEES)) {
32 throw new AccessDeniedException('You are not allowed to read employees.');
33 }
34
35 if (!$command->getPermissionService()->currentUserCanRead(Entities::CUSTOMERS)) {
36 throw new AccessDeniedException('You are not allowed to read customers.');
37 }
38
39 $result = new CommandResult();
40
41 $this->checkMandatoryFields($command);
42
43 /** @var UserService $userService */
44 $userService = $this->container->get('users.service');
45
46 $adminIds = $userService->getWpUserIdsByRoles(['administrator']);
47
48 /** @var WPUserRepository $wpUserRepository */
49 $wpUserRepository = $this->getContainer()->get('domain.wpUsers.repository');
50
51 $wpUsers = $wpUserRepository->getAllNonRelatedWPUsers($command->getFields(), $adminIds);
52
53 $wpUsers = apply_filters('amelia_get_wp_users_filter', $wpUsers);
54
55 do_action('amelia_get_wp_users', $wpUsers);
56
57 $result->setResult(CommandResult::RESULT_SUCCESS);
58 $result->setMessage('Successfully retrieved users.');
59
60 $result->setData(
61 [
62 Entities::USER . 's' => $wpUsers
63 ]
64 );
65
66 return $result;
67 }
68 }
69