Passed
Branch request_builder (fdca7a)
by Jens
08:39
created

ProductRequestBuilder::delete()   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 0
Metric Value
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 1
nc 1
nop 1
crap 1
1
<?php
2
/**
3
 * @author @jenschude <[email protected]>
4
 */
5
6
namespace Commercetools\Core\Builder\Request;
7
8
use Commercetools\Core\Model\Product\Product;
9
use Commercetools\Core\Model\Product\ProductDraft;
10
use Commercetools\Core\Request\Products\ProductByIdGetRequest;
11
use Commercetools\Core\Request\Products\ProductByKeyGetRequest;
12
use Commercetools\Core\Request\Products\ProductCreateRequest;
13
use Commercetools\Core\Request\Products\ProductDeleteByKeyRequest;
14
use Commercetools\Core\Request\Products\ProductDeleteRequest;
15
use Commercetools\Core\Request\Products\ProductImageUploadRequest;
16
use Commercetools\Core\Request\Products\ProductQueryRequest;
17
use Commercetools\Core\Request\Products\ProductUpdateByKeyRequest;
18
use Commercetools\Core\Request\Products\ProductUpdateRequest;
19
use Psr\Http\Message\UploadedFileInterface;
20
21
class ProductRequestBuilder
22
{
23
    /**
24
     * @return ProductQueryRequest
25
     */
26 1
    public function query()
27
    {
28 1
        return ProductQueryRequest::of();
29
    }
30
31
    /**
32
     * @param Product $product
33
     * @return ProductUpdateRequest
34
     */
35 1
    public function update(Product $product)
36
    {
37 1
        return ProductUpdateRequest::ofIdAndVersion($product->getId(), $product->getVersion());
38
    }
39
40
    /**
41
     * @param Product $product
42
     * @return ProductUpdateByKeyRequest
43
     */
44 1
    public function updateByKey(Product $product)
45
    {
46 1
        return ProductUpdateByKeyRequest::ofKeyAndVersion($product->getKey(), $product->getVersion());
47
    }
48
49
    /**
50
     * @param ProductDraft $productDraft
51
     * @return ProductCreateRequest
52
     */
53 1
    public function create(ProductDraft $productDraft)
54
    {
55 1
        return ProductCreateRequest::ofDraft($productDraft);
56
    }
57
58
    /**
59
     * @param Product $product
60
     * @return ProductDeleteRequest
61
     */
62 1
    public function delete(Product $product)
63
    {
64 1
        return ProductDeleteRequest::ofIdAndVersion($product->getId(), $product->getVersion());
65
    }
66
67
    /**
68
     * @param Product $product
69
     * @return ProductDeleteByKeyRequest
70
     */
71 1
    public function deleteByKey(Product $product)
72
    {
73 1
        return ProductDeleteByKeyRequest::ofKeyAndVersion($product->getKey(), $product->getVersion());
74
    }
75
76
    /**
77
     * @param string $id
78
     * @return ProductByIdGetRequest
79
     */
80 1
    public function getById($id)
81
    {
82 1
        return ProductByIdGetRequest::ofId($id);
83
    }
84
85
    /**
86
     * @param string $key
87
     * @return ProductByKeyGetRequest
88
     */
89 1
    public function getByKey($key)
90
    {
91 1
        return ProductByKeyGetRequest::ofKey($key);
92
    }
93
94
    /**
95
     * @param $id
96
     * @param $sku
97
     * @param UploadedFileInterface $uploadedFile
98
     * @return ProductImageUploadRequest
99
     */
100
    public function uploadImageBySKU($id, $sku, UploadedFileInterface $uploadedFile)
101
    {
102
        return ProductImageUploadRequest::ofIdSkuAndFile($id, $sku, $uploadedFile);
103
    }
104
}
105