Passed
Push — master ( a8d88a...70ed4e )
by Sergey
01:25 queued 13s
created

Address::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
namespace SergeyNezbritskiy\NovaPoshta\Models;
4
5
use SergeyNezbritskiy\NovaPoshta\Connection;
6
use SergeyNezbritskiy\NovaPoshta\ModelInterface;
7
use SergeyNezbritskiy\NovaPoshta\NovaPoshtaApiException;
8
9
class Address implements ModelInterface
10
{
11
    private const MODEL_NAME = 'Address';
12
    private Connection $connection;
13
14
    /**
15
     * @param Connection $connection
16
     */
17 3
    public function __construct(Connection $connection)
18
    {
19 3
        $this->connection = $connection;
20
    }
21
22
    /**
23
     * @param int $page
24
     * @param int $limit
25
     * @param string|null $search
26
     * @return array
27
     * @throws NovaPoshtaApiException
28
     */
29 1
    public function getCities(int $page = 1, int $limit = PHP_INT_MAX, string $search = null): array
30
    {
31 1
        $params = array_filter([
32 1
            'Page' => $page,
33 1
            'Limit' => $limit,
34 1
            'FindByString' => $search,
35 1
        ]);
36 1
        return $this->connection->post(self::MODEL_NAME, 'getCities', $params);
37
    }
38
39
    /**
40
     * @param array $filters Available filters are: CityName, CityRef, TypeOfWarehouseRef, WarehouseId
41
     * @param int $page
42
     * @param int $limit
43
     * @param string $lang
44
     * @return array
45
     * @throws NovaPoshtaApiException
46
     */
47 1
    public function getWarehouses(array $filters = [], int $page = 1, int $limit = 1000, string $lang = 'UA'): array
48
    {
49 1
        $params = array_filter([
50 1
            'CityName' => $filters['CityName'] ?? null,
51 1
            'CityRef' => $filters['CityRef'] ?? null,
52 1
            'TypeOfWarehouseRef' => $filters['TypeOfWarehouseRef'] ?? null,
53 1
            'WarehouseId' => $filters['WarehouseId'] ?? null,
54 1
            'Page' => $page,
55 1
            'Limit' => $limit,
56 1
            'Language' => $lang,
57 1
        ]);
58 1
        return $this->connection->post(self::MODEL_NAME, 'getWarehouses', $params);
59
    }
60
}
61