PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 3 days ago Provider 3 days 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 6 months ago GetWPUsersCommand.php 1 year ago GetWPUsersCommandHandler.php 6 months ago
GetWPUsersCommandHandler.php
68 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 */
28 public function handle(GetWPUsersCommand $command)
29 {
30 if (!$command->getPermissionService()->currentUserCanRead(Entities::EMPLOYEES)) {
31 throw new AccessDeniedException('You are not allowed to read employees.');
32 }
33
34 if (!$command->getPermissionService()->currentUserCanRead(Entities::CUSTOMERS)) {
35 throw new AccessDeniedException('You are not allowed to read customers.');
36 }
37
38 $result = new CommandResult();
39
40 $this->checkMandatoryFields($command);
41
42 /** @var UserService $userService */
43 $userService = $this->container->get('users.service');
44
45 $adminIds = $userService->getWpUserIdsByRoles(['administrator']);
46
47 /** @var WPUserRepository $wpUserRepository */
48 $wpUserRepository = $this->getContainer()->get('domain.wpUsers.repository');
49
50 $wpUsers = $wpUserRepository->getAllNonRelatedWPUsers($command->getFields(), $adminIds);
51
52 $wpUsers = apply_filters('amelia_get_wp_users_filter', $wpUsers);
53
54 do_action('amelia_get_wp_users', $wpUsers);
55
56 $result->setResult(CommandResult::RESULT_SUCCESS);
57 $result->setMessage('Successfully retrieved users.');
58
59 $result->setData(
60 [
61 Entities::USER . 's' => $wpUsers
62 ]
63 );
64
65 return $result;
66 }
67 }
68