KassaApi   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 137
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 36
c 1
b 0
f 0
dl 0
loc 137
ccs 37
cts 37
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getOrders() 0 19 1
A getOrdersByDate() 0 15 1
A getOrdersBySearch() 0 14 1
A getOrdersByDays() 0 14 1
1
<?php
2
3
4
namespace slavkluev\Bizon365\Api;
5
6
use GuzzleHttp\Exception\ClientException;
7
use slavkluev\Bizon365\Helpers\UrlHelper;
8
9
class KassaApi extends AbstractApi
10
{
11
    const METHODS = [
12
        'get.orders' => 'kassa/orders/getorders',
13
    ];
14
15
    /**
16
     * Получение списка заказов с помощью поисковой строки.
17
     *
18
     * @see KassaApi::getOrders()
19
     *
20
     * @param string $search  Поисковая строка.
21
     * @param int|null $skip  Пропустить указанное число записей.
22
     * @param int|null $limit Ограничить количество записей. Не более 100.
23
     * @param bool|null $paid Выводить только оплаченные заказы.
24
     *
25
     * @return mixed
26
     *
27
     * @throws ClientException
28
     */
29 3
    public function getOrdersBySearch(
30
        string $search,
31
        ?int $skip = null,
32
        ?int $limit = null,
33
        ?bool $paid = null
34
    ) {
35 3
        return $this->getOrders(
36 3
            $skip,
37 3
            $limit,
38 3
            null,
39 3
            null,
40 3
            null,
41 3
            $paid,
42 3
            $search
43
        );
44
    }
45
46
    /**
47
     * Получение списка заказов за последние дни.
48
     *
49
     * @see KassaApi::getOrders()
50
     *
51
     * @param int       $days  Заказы в диапазоне указанного количества дней относительно текущего момента.
52
     * @param int|null  $skip  Пропустить указанное число записей.
53
     * @param int|null  $limit Ограничить количество записей. Не более 100.
54
     * @param bool|null $paid  Выводить только оплаченные заказы.
55
     *
56
     * @return mixed
57
     *
58
     * @throws ClientException
59
     */
60 3
    public function getOrdersByDays(
61
        int $days,
62
        ?int $skip = null,
63
        ?int $limit = null,
64
        ?bool $paid = null
65
    ) {
66 3
        return $this->getOrders(
67 3
            $skip,
68 3
            $limit,
69 3
            $days,
70 3
            null,
71 3
            null,
72 3
            $paid,
73 3
            null
74
        );
75
    }
76
77
    /**
78
     * Получение списка заказов в промежутке между датами.
79
     *
80
     * @see KassaApi::getOrders()
81
     *
82
     * @param string    $dateBegin Начальная дата поиска в нестрогом ISO-формате.
83
     * @param string    $dateEnd   Конечная дата поиска в нестрогом ISO-формате.
84
     * @param int|null  $skip      Пропустить указанное число записей.
85
     * @param int|null  $limit     Ограничить количество записей. Не более 100.
86
     * @param bool|null $paid      Выводить только оплаченные заказы.
87
     *
88
     * @return mixed
89
     *
90
     * @throws ClientException
91
     */
92 3
    public function getOrdersByDate(
93
        string $dateBegin,
94
        string $dateEnd,
95
        ?int $skip = null,
96
        ?int $limit = null,
97
        ?bool $paid = null
98
    ) {
99 3
        return $this->getOrders(
100 3
            $skip,
101 3
            $limit,
102 3
            null,
103 3
            $dateBegin,
104 3
            $dateEnd,
105 3
            $paid,
106 3
            null
107
        );
108
    }
109
110
    /**
111
     * Получение списка заказов.
112
     *
113
     * @see https://blog.bizon365.ru/api/v1/kassa/orders/
114
     *
115
     * @param int|null    $skip      Пропустить указанное число записей.
116
     * @param int|null    $limit     Ограничить количество записей. Не более 100.
117
     * @param int|null    $days      Заказы в диапазоне указанного количества дней относительно текущего момента.
118
     * @param string|null $dateBegin Начальная дата поиска в нестрогом ISO-формате.
119
     * @param string|null $dateEnd   Конечная дата поиска в нестрогом ISO-формате.
120
     * @param bool|null   $paid      Выводить только оплаченные заказы.
121
     * @param string|null $search    Поисковая строка.
122
     *
123
     * @return mixed
124
     *
125
     * @throws ClientException
126
     */
127 12
    public function getOrders(
128
        ?int $skip = null,
129
        ?int $limit = null,
130
        ?int $days = null,
131
        ?string $dateBegin = null,
132
        ?string $dateEnd = null,
133
        ?bool $paid = null,
134
        ?string $search = null
135
    ) {
136 12
        $url = UrlHelper::build(self::METHODS['get.orders'], [
137 12
            'skip'      => $skip,
138 12
            'limit'     => $limit,
139 12
            'days'      => $days,
140 12
            'dateBegin' => $dateBegin,
141 12
            'dateEnd'   => $dateEnd,
142 12
            'paid'      => $paid,
143 12
            'search'    => $search,
144
        ]);
145 12
        return $this->get($url);
146
    }
147
}
148