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 / Payment / UpdatePaymentCommandHandler.php
ameliabooking / src / Application / Commands / Payment Last commit date
AddPaymentCommand.php 1 year ago AddPaymentCommandHandler.php 1 year ago CalculatePaymentAmountCommand.php 1 year ago CalculatePaymentAmountCommandHandler.php 1 year ago DeletePaymentCommand.php 1 year ago DeletePaymentCommandHandler.php 1 year ago GetPaymentCommand.php 1 year ago GetPaymentCommandHandler.php 1 year ago GetPaymentsCommand.php 1 year ago GetPaymentsCommandHandler.php 1 year ago UpdatePaymentCommand.php 1 year ago UpdatePaymentCommandHandler.php 1 year ago
UpdatePaymentCommandHandler.php
83 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\Payment;
9
10 use AmeliaBooking\Application\Commands\CommandHandler;
11 use AmeliaBooking\Application\Commands\CommandResult;
12 use AmeliaBooking\Application\Common\Exceptions\AccessDeniedException;
13 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
14 use AmeliaBooking\Domain\Entity\Payment\Payment;
15 use AmeliaBooking\Domain\Entity\Entities;
16 use AmeliaBooking\Domain\Factory\Payment\PaymentFactory;
17 use AmeliaBooking\Domain\ValueObjects\Number\Integer\Id;
18 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
19 use AmeliaBooking\Infrastructure\Repository\Payment\PaymentRepository;
20
21 /**
22 * Class UpdatePaymentCommandHandler
23 *
24 * @package AmeliaBooking\Application\Commands\Payment
25 */
26 class UpdatePaymentCommandHandler extends CommandHandler
27 {
28 /**
29 * @param UpdatePaymentCommand $command
30 *
31 * @return CommandResult
32 * @throws \Slim\Exception\ContainerValueNotFoundException
33 * @throws QueryExecutionException
34 * @throws InvalidArgumentException
35 * @throws AccessDeniedException
36 * @throws \Interop\Container\Exception\ContainerException
37 */
38 public function handle(UpdatePaymentCommand $command)
39 {
40 if (!$command->getPermissionService()->currentUserCanWrite(Entities::FINANCE)) {
41 throw new AccessDeniedException('You are not allowed to update payment.');
42 }
43
44 $result = new CommandResult();
45
46 $this->checkMandatoryFields($command);
47
48 $paymentArray = $command->getFields();
49
50 $paymentArray = apply_filters('amelia_before_payment_updated_filter', $paymentArray);
51
52 do_action('amelia_before_payment_updated', $paymentArray);
53
54 $payment = PaymentFactory::create($paymentArray);
55
56 if (!$payment instanceof Payment) {
57 $result->setResult(CommandResult::RESULT_ERROR);
58 $result->setMessage('Unable to update payment.');
59
60 return $result;
61 }
62
63 /** @var PaymentRepository $paymentRepository */
64 $paymentRepository = $this->container->get('domain.payment.repository');
65
66 $paymentId = (int)$command->getArg('id');
67 if ($paymentRepository->update($paymentId, $payment)) {
68 $payment->setId(new Id($paymentId));
69 do_action('amelia_after_payment_updated', $payment->toArray());
70
71 $result->setResult(CommandResult::RESULT_SUCCESS);
72 $result->setMessage('Payment successfully updated.');
73 $result->setData(
74 [
75 Entities::PAYMENT => $payment->toArray(),
76 ]
77 );
78 }
79
80 return $result;
81 }
82 }
83