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 / Stash / UpdateStashCommandHandler.php
ameliabooking / src / Application / Commands / Stash Last commit date
UpdateStashCommand.php 4 years ago UpdateStashCommandHandler.php 4 years ago
UpdateStashCommandHandler.php
75 lines
1 <?php
2 /**
3 * @copyright © TMS-Plugins. All rights reserved.
4 * @licence See LICENCE.md for license details.
5 */
6
7 namespace AmeliaBooking\Application\Commands\Stash;
8
9 use AmeliaBooking\Application\Commands\CommandHandler;
10 use AmeliaBooking\Application\Commands\CommandResult;
11 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
12 use AmeliaBooking\Application\Services\Stash\StashApplicationService;
13 use AmeliaBooking\Application\Services\User\UserApplicationService;
14 use AmeliaBooking\Domain\Common\Exceptions\AuthorizationException;
15 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
16 use AmeliaBooking\Domain\Entity\Entities;
17 use AmeliaBooking\Domain\Entity\User\AbstractUser;
18 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
19 use Slim\Exception\ContainerValueNotFoundException;
20
21 /**
22 * Class UpdateStashCommandHandler
23 *
24 * @package AmeliaBooking\Application\Commands\Coupon
25 */
26 class UpdateStashCommandHandler extends CommandHandler
27 {
28
29 /**
30 * @param UpdateStashCommand $command
31 *
32 * @return CommandResult
33 * @throws ContainerValueNotFoundException
34 * @throws InvalidArgumentException
35 * @throws AccessDeniedException
36 * @throws QueryExecutionException
37 * @throws \Interop\Container\Exception\ContainerException
38 */
39 public function handle(UpdateStashCommand $command)
40 {
41 /** @var StashApplicationService $stashApplicationService */
42 $stashApplicationService = $this->container->get('application.stash.service');
43
44 /** @var UserApplicationService $userAS */
45 $userAS = $this->container->get('application.user.service');
46
47 try {
48 /** @var AbstractUser $currentUser */
49 $currentUser = $userAS->authorization(
50 $command->getToken() ?: null,
51 Entities::PROVIDER
52 );
53 } catch (AuthorizationException $e) {
54 $currentUser = null;
55 }
56
57 if ($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