Code Duplication    Length = 57-60 lines in 2 locations

src/Model/Suppression/Unsubscribe/IndexResponse.php 1 location

@@ 21-80 (lines=60) @@
18
/**
19
 * @author Sean Johnson <[email protected]>
20
 */
21
final class IndexResponse implements ApiResponse, PagingProvider
22
{
23
    use PaginationResponse;
24
25
    /**
26
     * Array to store a list of Unsubscribe items from
27
     * index response.
28
     *
29
     * @see Mailgun/Model/Suppression/Unsubscribe/Unsubscribe
30
     *
31
     * @var Unsubscribe[]
32
     */
33
    private $items = [];
34
35
    /**
36
     * Store the total number of Unsubscribe items.
37
     *
38
     * @see Mailgun/Model/Suppression/Unsubscribe/Unsubscribe
39
     *
40
     * @var int
41
     */
42
    private $totalCount;
43
44
    private function __construct()
45
    {
46
    }
47
48
    public static function create(array $data): self
49
    {
50
        $unsubscribes = [];
51
        if (isset($data['items'])) {
52
            foreach ($data['items'] as $item) {
53
                $unsubscribes[] = Unsubscribe::create($item);
54
            }
55
        }
56
57
        $model = new self();
58
        $model->items = $unsubscribes;
59
        $model->paging = $data['paging'];
60
61
        return $model;
62
    }
63
64
    /**
65
     * @return Unsubscribe[]
66
     */
67
    public function getItems(): array
68
    {
69
        return $this->items;
70
    }
71
72
    public function getTotalCount(): int
73
    {
74
        if (null === $this->totalCount) {
75
            $this->totalCount = count($this->items);
76
        }
77
78
        return $this->totalCount;
79
    }
80
}
81

src/Model/Suppression/Whitelist/IndexResponse.php 1 location

@@ 21-77 (lines=57) @@
18
/**
19
 * @author Artem Bondarenko <[email protected]>
20
 */
21
final class IndexResponse implements ApiResponse, PagingProvider
22
{
23
    use PaginationResponse;
24
25
    /**
26
     * Array to store a list of whitelist items from
27
     * index response.
28
     *
29
     * @var Whitelist[]
30
     */
31
    private $items = [];
32
33
    /**
34
     * Store the total number of whitelists items.
35
     *
36
     * @var int
37
     */
38
    private $totalCount;
39
40
    private function __construct()
41
    {
42
    }
43
44
    public static function create(array $data): self
45
    {
46
        $whitelists = [];
47
48
        if (isset($data['items'])) {
49
            foreach ($data['items'] as $item) {
50
                $whitelists[] = Whitelist::create($item);
51
            }
52
        }
53
54
        $model = new self();
55
        $model->items = $whitelists;
56
        $model->paging = $data['paging'];
57
58
        return $model;
59
    }
60
61
    /**
62
     * @return Whitelist[]
63
     */
64
    public function getItems(): array
65
    {
66
        return $this->items;
67
    }
68
69
    public function getTotalCount(): int
70
    {
71
        if (null === $this->totalCount) {
72
            $this->totalCount = count($this->items);
73
        }
74
75
        return $this->totalCount;
76
    }
77
}
78