Completed
Push — master ( 743367...2eb0ee )
by Gabriel
06:30
created

Items::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Waredesk\Inventory;
4
5
use Waredesk\Controller;
6
use Waredesk\Mappers\Inventory\ItemMapper;
7
use Waredesk\Mappers\Inventory\ItemsMapper;
8
use Waredesk\Models\Inventory\Item;
9
use Waredesk\Collections;
10
11
class Items extends Controller
12
{
13
    private const ENDPOINT = '/v1-alpha/inventory/items';
14
15 1
    public function create(Item $item): Item
16
    {
17 1
        return $this->doCreate(
18 1
            self::ENDPOINT,
19
            $item,
20
            function ($response) use ($item) {
21 1
                return (new ItemMapper())->map($item, $response);
22 1
            }
23
        );
24
    }
25
26 1
    public function delete(Item $item): bool
27
    {
28 1
        $this->validateIsNotNewEntity($item->getId());
29 1
        return $this->doDelete(self::ENDPOINT."/{$item->getId()}");
30
    }
31
32 1
    public function fetch(string $orderBy = null, string $order = self::ORDER_BY_ASC, int $limit = null): Collections\Inventory\Items
33
    {
34 1
        return $this->doFetch(
35 1
            self::ENDPOINT,
36
            $orderBy,
37
            $order,
38
            $limit,
39
            function ($response) {
40 1
                return (new ItemsMapper())->map(new Collections\Inventory\Items(), $response);
41 1
            }
42
        );
43
    }
44
45
    public function fetchOne(string $orderBy = null, string $order = self::ORDER_BY_ASC): ? Item
46
    {
47
        return $this->doFetchOne(
48
            self::ENDPOINT,
49
            $orderBy,
50
            $order,
51
            function ($response) {
52
                return (new ItemsMapper())->map(new Collections\Inventory\Items(), $response);
53
            }
54
        );
55
    }
56
57
    public function findOneBy(array $criteria, string $orderBy = null, string $order = self::ORDER_BY_ASC): ? Item
58
    {
59
        return $this->doFindOneBy(
60
            self::ENDPOINT,
61
            $criteria,
62
            $orderBy,
63
            $order,
64
            function ($response) {
65
                return (new ItemsMapper())->map(new Collections\Inventory\Items(), $response);
66
            }
67
        );
68
    }
69
}
70