PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.21
Booking for Appointments and Events Calendar – Amelia v1.2.21
2.4.9 2.4.8 2.4.7 2.4.6 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 / Square / SquareRefundWebhookCommandHandler.php
ameliabooking / src / Application / Commands / Square Last commit date
DisconnectFromSquareAccountCommand.php 2 years ago DisconnectFromSquareAccountCommandHandler.php 2 years ago FetchAccessTokenSquareCommand.php 2 years ago FetchAccessTokenSquareCommandHandler.php 2 years ago GetSquareAuthURLCommand.php 2 years ago GetSquareAuthURLCommandHandler.php 2 years ago SquarePaymentCommand.php 2 years ago SquarePaymentCommandHandler.php 2 years ago SquarePaymentNotifyCommand.php 2 years ago SquarePaymentNotifyCommandHandler.php 2 years ago SquareRefundWebhookCommand.php 2 years ago SquareRefundWebhookCommandHandler.php 2 years ago
SquareRefundWebhookCommandHandler.php
70 lines
1 <?php
2
3 namespace AmeliaBooking\Application\Commands\Square;
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\Domain\Entity\Payment\Payment;
11 use AmeliaBooking\Infrastructure\Common\Exceptions\NotFoundException;
12 use AmeliaBooking\Infrastructure\Common\Exceptions\QueryExecutionException;
13 use AmeliaBooking\Infrastructure\Repository\Payment\PaymentRepository;
14 use AmeliaBooking\Infrastructure\Services\Payment\CurrencyService;
15 use AmeliaBooking\Infrastructure\Services\Payment\SquareService;
16 use Interop\Container\Exception\ContainerException;
17
18 /**
19 * Class SquareRefundWebhookCommandHandler
20 *
21 * @package AmeliaBooking\Application\Commands\Square
22 */
23 class SquareRefundWebhookCommandHandler extends CommandHandler
24 {
25 /**
26 * @param SquareRefundWebhookCommand $command
27 *
28 * @return CommandResult
29 * @throws AccessDeniedException
30 * @throws NotFoundException
31 * @throws QueryExecutionException
32 * @throws ContainerException
33 * @throws InvalidArgumentException
34 * @throws \Exception
35 */
36 public function handle(SquareRefundWebhookCommand $command)
37 {
38 /** @var PaymentRepository $paymentRepository */
39 $paymentRepository = $this->container->get('domain.payment.repository');
40
41 $result = new CommandResult();
42
43 $data = $command->getField('data');
44
45 if ($data && !empty($data['object']['refund']['payment_id'])) {
46 $payments = $paymentRepository->getByEntityId($data['object']['refund']['payment_id'], 'transactionId');
47
48 if ($payments->length() === 0) {
49 $result->setResult(CommandResult::RESULT_ERROR);
50 $result->setMessage('Cannot find payment');
51 $result->setData(['success' => false]);
52
53 return $result;
54 }
55
56 foreach ($payments->toArray() as $payment) {
57 // if (floatval($payment['amount']) <= floatval($data['object']['refund']['amount_money']['amount']/100)) {
58 $paymentRepository->updateFieldById($payment['id'], 'refunded', 'status');
59 // }
60 }
61 }
62
63 $result->setResult(CommandResult::RESULT_SUCCESS);
64 $result->setMessage('Successfully updated payment status');
65 $result->setData(['success' => true]);
66
67 return $result;
68 }
69 }
70