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 / Square / SquareRefundWebhookCommandHandler.php
ameliabooking / src / Application / Commands / Square Last commit date
DisconnectFromSquareAccountCommand.php 1 year ago DisconnectFromSquareAccountCommandHandler.php 1 year ago FetchAccessTokenSquareCommand.php 1 year ago FetchAccessTokenSquareCommandHandler.php 1 year ago GetSquareAuthURLCommand.php 1 year ago GetSquareAuthURLCommandHandler.php 1 year ago SquarePaymentCommand.php 1 year ago SquarePaymentCommandHandler.php 1 year ago SquarePaymentNotifyCommand.php 1 year ago SquarePaymentNotifyCommandHandler.php 1 year ago SquareRefundWebhookCommand.php 1 year ago SquareRefundWebhookCommandHandler.php 1 year 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