Passed
Push — develop ( 14d0a2...ac4443 )
by Jens
08:35 queued 12s
created

ProductDiscountRequestBuilder::updateByKey()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 4
ccs 0
cts 3
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
// phpcs:disable Generic.Files.LineLength
3
namespace Commercetools\Core\Builder\Request;
4
5
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountByIdGetRequest;
6
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountByKeyGetRequest;
7
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountCreateRequest;
8
use Commercetools\Core\Model\ProductDiscount\ProductDiscountDraft;
9
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountDeleteByKeyRequest;
10
use Commercetools\Core\Model\ProductDiscount\ProductDiscount;
11
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountDeleteRequest;
12
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountMatchingRequest;
13
use Commercetools\Core\Model\Common\Price;
14
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountQueryRequest;
15
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountUpdateByKeyRequest;
16
use Commercetools\Core\Request\ProductDiscounts\ProductDiscountUpdateRequest;
17
18
class ProductDiscountRequestBuilder
19
{
20
21
    /**
22
     * @link https://docs.commercetools.com/http-api-projects-productDiscounts.html#get-productdiscount-by-id
23
     * @param string $id
24
     * @return ProductDiscountByIdGetRequest
25
     */
26 1
    public function getById($id)
27
    {
28 1
        $request = ProductDiscountByIdGetRequest::ofId($id);
29 1
        return $request;
30
    }
31
32
    /**
33
     *
34
     * @param string $key
35
     * @return ProductDiscountByKeyGetRequest
36
     */
37
    public function getByKey($key)
38
    {
39
        $request = ProductDiscountByKeyGetRequest::ofKey($key);
40
        return $request;
41
    }
42
43
    /**
44
     * @link https://docs.commercetools.com/http-api-projects-productDiscounts.html#create-a-productdiscount
45
     * @param ProductDiscountDraft $productDiscount
46
     * @return ProductDiscountCreateRequest
47
     */
48 1
    public function create(ProductDiscountDraft $productDiscount)
49
    {
50 1
        $request = ProductDiscountCreateRequest::ofDraft($productDiscount);
51 1
        return $request;
52
    }
53
54
    /**
55
     *
56
     * @param ProductDiscount $productDiscount
57
     * @return ProductDiscountDeleteByKeyRequest
58
     */
59
    public function deleteByKey(ProductDiscount $productDiscount)
60
    {
61
        $request = ProductDiscountDeleteByKeyRequest::ofKeyAndVersion($productDiscount->getKey(), $productDiscount->getVersion());
62
        return $request;
63
    }
64
65
    /**
66
     * @link https://docs.commercetools.com/http-api-projects-productDiscounts.html#delete-productdiscount
67
     * @param ProductDiscount $productDiscount
68
     * @return ProductDiscountDeleteRequest
69
     */
70 1
    public function delete(ProductDiscount $productDiscount)
71
    {
72 1
        $request = ProductDiscountDeleteRequest::ofIdAndVersion($productDiscount->getId(), $productDiscount->getVersion());
73 1
        return $request;
74
    }
75
76
    /**
77
     *
78
     * @param string $productId
79
     * @param int $variantId
80
     * @param Price $price
81
     * @return ProductDiscountMatchingRequest
82
     */
83
    public function matching($productId, $variantId, Price $price)
84
    {
85
        $request = ProductDiscountMatchingRequest::ofProductIdVariantIdAndPrice($productId, $variantId, $price);
86
        return $request;
87
    }
88
89
    /**
90
     * @link https://docs.commercetools.com/http-api-projects-productDiscounts.html#query-productdiscounts
91
     *
92
     * @return ProductDiscountQueryRequest
93
     */
94 1
    public function query()
95
    {
96 1
        $request = ProductDiscountQueryRequest::of();
97 1
        return $request;
98
    }
99
100
    /**
101
     *
102
     * @param ProductDiscount $productDiscount
103
     * @return ProductDiscountUpdateByKeyRequest
104
     */
105
    public function updateByKey(ProductDiscount $productDiscount)
106
    {
107
        $request = ProductDiscountUpdateByKeyRequest::ofKeyAndVersion($productDiscount->getKey(), $productDiscount->getVersion());
108
        return $request;
109
    }
110
111
    /**
112
     * @link https://docs.commercetools.com/http-api-projects-productDiscounts.html#update-productdiscount
113
     * @param ProductDiscount $productDiscount
114
     * @return ProductDiscountUpdateRequest
115
     */
116 1
    public function update(ProductDiscount $productDiscount)
117
    {
118 1
        $request = ProductDiscountUpdateRequest::ofIdAndVersion($productDiscount->getId(), $productDiscount->getVersion());
119 1
        return $request;
120
    }
121
122
    /**
123
     * @return ProductDiscountRequestBuilder
124
     */
125
    public function of()
126
    {
127
        return new self();
128
    }
129
}
130