BillingRequestCreatedHandlerJob   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Test Coverage

Coverage 69.23%

Importance

Changes 0
Metric Value
wmc 4
eloc 13
c 0
b 0
f 0
dl 0
loc 25
ccs 9
cts 13
cp 0.6923
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 23 4
1
<?php
2
3
namespace GoCardlessPayment\Jobs\WebhookHandlers;
4
5
use GoCardlessPayment\Events\GoCardlessWebhookEventHandled;
6
use GoCardlessPayment\GoCardlessPayment;
7
use Illuminate\Support\Facades\Log;
8
9
class BillingRequestCreatedHandlerJob extends WebhookEventHandlerJob
10
{
11 2
    public function handle(): void
12
    {
13 2
        $metadataKeyName = GoCardlessPayment::$syncMetadataKeyName;
14
15 2
        $gocardlessCustomerId = $this->event->links?->customer;
16 2
        $syncKey = $this->event->metadata?->$metadataKeyName;
17
18 2
        if (! $gocardlessCustomerId || ! $syncKey) {
19
            Log::debug("BillingRequestCreatedHandlerJob event object not contains required references to customer or {$metadataKeyName}");
20
21
            return;
22
        }
23
24 2
        $localCustomer = GoCardlessPayment::localCustomerRepository()->findLocalCustomerBySyncKey($syncKey);
25 2
        if (! $localCustomer) {
26
            Log::debug("Local customer not found to attach key [{$metadataKeyName}:{$syncKey}]");
27
28
            return;
29
        }
30
31 2
        $localCustomer->setGocardlessKey($gocardlessCustomerId);
32
33 2
        GoCardlessWebhookEventHandled::dispatch($this->event, $localCustomer);
34
    }
35
}
36