PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
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 7 years ago DeleteUserCommandHandler.php 2 years ago GetCurrentUserCommand.php 7 years ago GetCurrentUserCommandHandler.php 2 years ago GetUserDeleteEffectCommand.php 7 years ago GetUserDeleteEffectCommandHandler.php 1 year ago GetWPUsersCommand.php 7 years ago GetWPUsersCommandHandler.php 2 years ago
GetWPUsersCommandHandler.php
67 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 Entities::USER . 's' => $wpUsers
62 ]);
63
64 return $result;
65 }
66 }
67