Test Setup Failed
Pull Request — dev (#315)
by Alies
04:00
created

BePaidWebhookHandler   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 21
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A donated() 0 19 1
1
<?php
2
3
namespace Diglabby\Doika\Http\Controllers\Webhooks\PaymentGateways;
4
5
use App\Http\Controllers\Controller;
6
use Diglabby\Doika\Models\Donator;
7
use Diglabby\Doika\Models\Transaction;
8
use Illuminate\Http\Request;
9
use Illuminate\Http\Response;
10
11
/**
12
 * @see https://docs.bepaid.by/ru/webhooks
13
 */
14
final class BePaidWebhookHandler extends Controller
15
{
16
    public function donated(Request $request, int $campaignId)
17
    {
18
        \Log::debug('bePaid donated webhook', ['headers' => $request->headers->all(), 'input' => $request->all(),]);
19
20
        /** @var Donator $donator */
21
        $donator = Donator::query()->firstOrCreate(['email' => $request->json('transaction.customer.email')]);
22
23
        Transaction::query()->create([
24
            'campaign_id' => $campaignId,
25
            'donator_id' => $donator->id,
26
            'payment_gateway' => 'bePaid',
27
            'payment_gateway_transaction_id' => $request->json('transaction.uid'),
28
            'amount' => $request->json('transaction.amount'),
29
            'currency' => $request->json('transaction.currency'),
30
            'status' => Transaction::STATUS_SUCCESSFUL,
31
            'status_message' => $request->json('transaction.payment.message'),
32
        ]);
33
34
        return response('', Response::HTTP_CREATED);
35
    }
36
}
37