Passed
Push — develop ( f86f45...dfc586 )
by Edwin
01:46
created

ProductVariant::get()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 2
crap 1
1
<?php
2
3
namespace ShopifyClient\Resource;
4
5
/**
6
 * https://help.shopify.com/api/reference/product_variant
7
 */
8
class ProductVariant extends AbstractResource
9
{
10
    /**
11
     * @var bool
12
     */
13
    protected $countable = true;
14
15
    /**
16
     * @param float $id
17
     * @param array $fields
18
     * @return array
19
     */
20 1
    public function get(float $id, array $fields = [])
21
    {
22 1
        $response = $this->request('GET', sprintf('/admin/variants/%s.json', $id), [
23
            'query' => [
24 1
                'fields' => $fields,
25
            ],
26
        ]);
27
28 1
        return $response['variant'];
29
    }
30
31
    /**
32
     * @param float $id product id
33
     * @param array $query
34
     * @return array
35
     */
36 1
    public function all(float $id, array $query = [])
37
    {
38 1
        $response = $this->request('GET', sprintf('/admin/products/%s/variants.json', $id), [
39 1
            'query' => $query,
40
        ]);
41
42 1
        return $response['variants'];
43
    }
44
45
    /**
46
     * @param float $id product id
47
     * @return array
48
     */
49 1
    public function count(float $id)
50
    {
51 1
        $response = $this->request('GET', sprintf('/admin/products/%s/variants/count.json', $id));
52
53 1
        return $response['count'];
54
    }
55
56
    /**
57
     * @param float $id product id
58
     * @param array $params
59
     * @return array
60
     */
61 1
    public function create(float $id, array $params = [])
62
    {
63 1
        $response = $this->request('POST', sprintf('/admin/products/%s/variants.json', $id), [
64 1
            'body' => json_encode([
65 1
                'variant' => $params,
66
            ]),
67
        ]);
68
69 1
        return $response['variant'];
70
    }
71
72
    /**
73
     * @param float $id
74
     * @param array $params
75
     * @return array
76
     */
77 1
    public function update(float $id, array $params = [])
78
    {
79 1
        $response = $this->request('PUT', sprintf('/admin/variants/%s.json', $id), [
80 1
            'body' => json_encode([
81 1
                'variant' => $params,
82
            ]),
83
        ]);
84
85 1
        return $response['variant'];
86
    }
87
88
    /**
89
     * @param float $productId
90
     * @param float $variantId
91
     */
92 1
    public function delete(float $productId, float $variantId)
93
    {
94 1
        $this->request('DELETE', sprintf('/admin/products/%s/variants/%s.json', $productId, $variantId));
95 1
    }
96
}
97