Test Failed
Push — develop ( 47e1b5...e72b23 )
by Jens
18:53 queued 15s
created

ProductRequestBuilder::delete()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 4
c 0
b 0
f 0
rs 10
ccs 2
cts 2
cp 1
cc 1
nc 1
nop 1
crap 1
1
<?php
2
// phpcs:disable Generic.Files.LineLength
3
namespace Commercetools\Core\Builder\Request;
4
5
use Commercetools\Core\Request\Products\ProductByIdGetRequest;
6
use Commercetools\Core\Request\Products\ProductByIdHeadRequest;
7
use Commercetools\Core\Request\Products\ProductByKeyGetRequest;
8
use Commercetools\Core\Request\Products\ProductByKeyHeadRequest;
9
use Commercetools\Core\Request\Products\ProductCreateRequest;
10
use Commercetools\Core\Model\Product\ProductDraft;
11
use Commercetools\Core\Request\Products\ProductDeleteByKeyRequest;
12
use Commercetools\Core\Model\Product\Product;
13
use Commercetools\Core\Request\Products\ProductDeleteRequest;
14
use Commercetools\Core\Request\Products\ProductHeadRequest;
15
use Commercetools\Core\Request\Products\ProductImageUploadRequest;
16
use Psr\Http\Message\UploadedFileInterface;
17
use Commercetools\Core\Request\Products\ProductQueryRequest;
18
use Commercetools\Core\Request\Products\ProductUpdateByKeyRequest;
19
use Commercetools\Core\Request\Products\ProductUpdateRequest;
20
21
class ProductRequestBuilder
22
{
23
24
    /**
25
     * @link https://docs.commercetools.com/http-api-projects-products.html#get-product-by-id
26 6
     * @param string $id
27
     * @return ProductByIdGetRequest
28 6
     */
29 6
    public function getById($id)
30
    {
31
        $request = ProductByIdGetRequest::ofId($id);
32
        return $request;
33
    }
34
35
    /**
36
     * @link https://docs.commercetools.com/api/projects/products#by-id
37 2
     * @param string $id
38
     * @return ProductByIdHeadRequest
39 2
     */
40 2
    public function getByIdHead($id)
41
    {
42
        $request = ProductByIdHeadRequest::ofId($id);
43
        return $request;
44
    }
45
46
    /**
47
     *
48 1
     * @param string $key
49
     * @return ProductByKeyGetRequest
50 1
     */
51 1
    public function getByKey($key)
52
    {
53
        $request = ProductByKeyGetRequest::ofKey($key);
54
        return $request;
55
    }
56
57
    /**
58
     * @link https://docs.commercetools.com/api/projects/products#by-key
59 1
     * @param string $key
60
     * @return ProductByKeyHeadRequest
61 1
     */
62 1
    public function getByKeyHead($key)
63
    {
64
        $request = ProductByKeyHeadRequest::ofKey($key);
65
        return $request;
66
    }
67
68
    /**
69
     * @link https://docs.commercetools.com/http-api-projects-products.html#create-a-product
70 1
     * @param ProductDraft $product
71
     * @return ProductCreateRequest
72 1
     */
73 1
    public function create(ProductDraft $product)
74
    {
75
        $request = ProductCreateRequest::ofDraft($product);
76
        return $request;
77
    }
78
79
    /**
80
     *
81
     * @param Product $product
82
     * @return ProductDeleteByKeyRequest
83 4
     */
84
    public function deleteByKey(Product $product)
85 4
    {
86 4
        $request = ProductDeleteByKeyRequest::ofKeyAndVersion($product->getKey(), $product->getVersion());
87
        return $request;
88
    }
89
90
    /**
91
     * @link https://docs.commercetools.com/http-api-projects-products.html#delete-product
92
     * @param Product $product
93
     * @return ProductDeleteRequest
94 7
     */
95
    public function delete(Product $product)
96 7
    {
97 7
        $request = ProductDeleteRequest::ofIdAndVersion($product->getId(), $product->getVersion());
98
        return $request;
99
    }
100
101
    /**
102
     * @link https://docs.commercetools.com/api/projects/products#by-query-predicate
103
     *
104
     * @return ProductHeadRequest
105 1
     */
106
    public function head()
107 1
    {
108 1
        $request = ProductHeadRequest::of();
109
        return $request;
110
    }
111
112
    /**
113
     * @link https://docs.commercetools.com/http-api-projects-products.html#upload-a-product-image
114
     * @param string $id
115
     * @param string $sku
116 223
     * @param UploadedFileInterface $uploadedFile
117
     * @return ProductImageUploadRequest
118 223
     */
119 223
    public function uploadImageBySKU($id, $sku, UploadedFileInterface $uploadedFile)
120
    {
121
        $request = ProductImageUploadRequest::ofIdSkuAndFile($id, $sku, $uploadedFile);
122
        return $request;
123
    }
124
125
    /**
126
     * @link https://docs.commercetools.com/http-api-projects-products.html#query-products
127
     *
128
     * @return ProductQueryRequest
129
     */
130
    public function query()
131
    {
132
        $request = ProductQueryRequest::of();
133
        return $request;
134
    }
135
136
    /**
137
     *
138
     * @param Product $product
139
     * @return ProductUpdateByKeyRequest
140
     */
141
    public function updateByKey(Product $product)
142
    {
143
        $request = ProductUpdateByKeyRequest::ofKeyAndVersion($product->getKey(), $product->getVersion());
144
        return $request;
145
    }
146
147
    /**
148
     * @link https://docs.commercetools.com/http-api-projects-products.html#update-product
149
     * @param Product $product
150
     * @return ProductUpdateRequest
151
     */
152
    public function update(Product $product)
153
    {
154
        $request = ProductUpdateRequest::ofIdAndVersion($product->getId(), $product->getVersion());
155
        return $request;
156
    }
157
158
    /**
159
     * @return ProductRequestBuilder
160
     */
161
    public function of()
162
    {
163
        return new self();
164
    }
165
}
166