Passed
Push — main ( f356f2...2c2ce3 )
by Vasil
02:30
created

GetCountriesResponse::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
c 1
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace VasilDakov\Shipping\Response;
6
7
use VasilDakov\Shipping\Collection\ArrayCollection;
8
use VasilDakov\Shipping\Model\Country;
9
10
class GetCountriesResponse
11
{
12
    public ArrayCollection $countries;
13
14 3
    public function __construct(array $records = []
15
        //#[CastListToType(Country::class)]
16
    ) {
17 3
        $this->countries = new ArrayCollection($records);
18
    }
19
20
21
    public function findByName(string $name): ArrayCollection
22
    {
23
24
        return $this->countries->filter(function (Country $country) use ($name) {
25
            return $country->name == $name || $country->nameEn == $name;
26
        });
27
28
        //return (!$collection->isEmpty()) ? $collection->first() : null;
29
    }
30
31
    public function findByIsoAlpha2(string $isoAlpha2):?Country
32
    {
33
34
        $collection = $this->countries->filter(function (Country $country) use ($isoAlpha2) {
35
            return $country->isoAlpha2 == $isoAlpha2;
36
        });
37
38
        return (!$collection->isEmpty()) ? $collection->first() : null;
39
    }
40
41
    public function findByIsoAlpha3(string $isoAlpha3):?Country
42
    {
43
44
        $collection = $this->countries->filter(function (Country $country) use ($isoAlpha3) {
45
            return $country->isoAlpha3 == $isoAlpha3;
46
        });
47
48
        return (!$collection->isEmpty()) ? $collection->first() : null;
49
    }
50
}
51
52