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 / Stash / UpdateStashCommandHandler.php
ameliabooking / src / Application / Commands / Stash Last commit date
UpdateStashCommand.php 1 year ago UpdateStashCommandHandler.php 1 year ago
UpdateStashCommandHandler.php
76 lines
1 <?php
2
3 /**
4 * @copyright © TMS-Plugins. 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 * @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 (
58 $currentUser && (
59 $currentUser->getType() === AbstractUser::USER_ROLE_ADMIN ||
60 $currentUser->getType() === AbstractUser::USER_ROLE_PROVIDER ||
61 $currentUser->getType() === AbstractUser::USER_ROLE_MANAGER
62 )
63 ) {
64 $stashApplicationService->setStash();
65 }
66
67 $result = new CommandResult();
68
69 $result->setResult(CommandResult::RESULT_SUCCESS);
70 $result->setMessage('Successfully updated stash');
71 $result->setData(true);
72
73 return $result;
74 }
75 }
76