dev-think-one /
laravel-gocardless-payment
| 1 | <?php |
||
| 2 | |||
| 3 | namespace GoCardlessPayment\Repositories; |
||
| 4 | |||
| 5 | use GoCardlessPayment\Contracts\GoCardlessCustomer; |
||
| 6 | use GoCardlessPayment\Contracts\LocalCustomerRepository; |
||
| 7 | use Illuminate\Database\Eloquent\Model; |
||
| 8 | use Illuminate\Database\Eloquent\SoftDeletes; |
||
| 9 | |||
| 10 | class LocalCustomerEloquentRepository implements LocalCustomerRepository |
||
| 11 | { |
||
| 12 | public readonly string $localCustomerModel; |
||
| 13 | |||
| 14 | public readonly string $syncLocalKeyName; |
||
| 15 | |||
| 16 | 8 | public function __construct(string $localCustomerModel, string $syncLocalKeyName) |
|
| 17 | { |
||
| 18 | 8 | $this->localCustomerModel = $localCustomerModel; |
|
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||
| 19 | 8 | $this->syncLocalKeyName = $syncLocalKeyName; |
|
|
0 ignored issues
–
show
|
|||
| 20 | } |
||
| 21 | |||
| 22 | 6 | public function findLocalCustomer(string|GoCardlessCustomer $gocardlessId): ?GoCardlessCustomer |
|
| 23 | { |
||
| 24 | 6 | $gocardlessId = $gocardlessId instanceof GoCardlessCustomer ? $gocardlessId->gocardlessKey() : $gocardlessId; |
|
| 25 | |||
| 26 | /** @var class-string<Model> $model */ |
||
| 27 | 6 | $model = $this->localCustomerModel; |
|
| 28 | |||
| 29 | 6 | $builder = in_array(SoftDeletes::class, class_uses_recursive($model)) |
|
| 30 | ? $model::withTrashed() |
||
| 31 | 6 | : new $model; |
|
| 32 | |||
| 33 | 6 | return $gocardlessId ? $builder->where($this->syncLocalKeyName, $gocardlessId)->first() : null; |
|
| 34 | } |
||
| 35 | |||
| 36 | 2 | public function findLocalCustomerBySyncKey(string|GoCardlessCustomer $id): ?GoCardlessCustomer |
|
| 37 | { |
||
| 38 | 2 | $id = $id instanceof GoCardlessCustomer ? $id->getSyncKey() : $id; |
|
| 39 | |||
| 40 | /** @var class-string<Model> $model */ |
||
| 41 | 2 | $model = $this->localCustomerModel; |
|
| 42 | |||
| 43 | 2 | $builder = in_array(SoftDeletes::class, class_uses_recursive($model)) |
|
| 44 | ? $model::withTrashed() |
||
| 45 | 2 | : new $model; |
|
| 46 | |||
| 47 | 2 | return $id ? $builder->whereKey($id)->first() : null; |
|
| 48 | } |
||
| 49 | } |
||
| 50 |