PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.0.2
Booking for Appointments and Events Calendar – Amelia v2.0.2
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 / Stash / UpdateStashCommandHandler.php
ameliabooking / src / Application / Commands / Stash Last commit date
UpdateStashCommand.php 6 months ago UpdateStashCommandHandler.php 6 months ago
UpdateStashCommandHandler.php
75 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Application\Commands\Stash;
9
10 use AmeliaBooking\Application\Commands\CommandHandler;
11 use AmeliaBooking\Application\Commands\CommandResult;
12 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
13 use AmeliaBooking\Application\Services\Stash\StashApplicationService;
14 use AmeliaBooking\Application\Services\User\UserApplicationService;
15 use AmeliaBooking\Domain\Common\Exceptions\AuthorizationException;
16 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
17 use AmeliaBooking\Domain\Entity\Entities;
18 use AmeliaBooking\Domain\Entity\User\AbstractUser;
19 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
20 use Slim\Exception\ContainerValueNotFoundException;
21
22 /**
23 * Class UpdateStashCommandHandler
24 *
25 * @package AmeliaBooking\Application\Commands\Coupon
26 */
27 class UpdateStashCommandHandler extends CommandHandler
28 {
29 /**
30 * @param UpdateStashCommand $command
31 *
32 * @return CommandResult
33 * @throws ContainerValueNotFoundException
34 * @throws InvalidArgumentException
35 * @throws AccessDeniedException
36 * @throws QueryExecutionException
37 */
38 public function handle(UpdateStashCommand $command)
39 {
40 /** @var StashApplicationService $stashApplicationService */
41 $stashApplicationService = $this->container->get('application.stash.service');
42
43 /** @var UserApplicationService $userAS */
44 $userAS = $this->container->get('application.user.service');
45
46 try {
47 /** @var AbstractUser $currentUser */
48 $currentUser = $userAS->authorization(
49 $command->getToken() ?: null,
50 Entities::PROVIDER
51 );
52 } catch (AuthorizationException $e) {
53 $currentUser = null;
54 }
55
56 if (
57 $currentUser && (
58 $currentUser->getType() === AbstractUser::USER_ROLE_ADMIN ||
59 $currentUser->getType() === AbstractUser::USER_ROLE_PROVIDER ||
60 $currentUser->getType() === AbstractUser::USER_ROLE_MANAGER
61 )
62 ) {
63 $stashApplicationService->setStash();
64 }
65
66 $result = new CommandResult();
67
68 $result->setResult(CommandResult::RESULT_SUCCESS);
69 $result->setMessage('Successfully updated stash');
70 $result->setData(true);
71
72 return $result;
73 }
74 }
75