Passed
Push — develop ( 543746...52d944 )
by Jens
08:13
created

CartReplicateRequest::ofOrderId()   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 2
crap 1
1
<?php
2
/**
3
 * @author @jenschude <[email protected]>
4
 */
5
6
namespace Commercetools\Core\Request\Carts;
7
8
use Commercetools\Core\Model\Cart\Cart;
9
use Commercetools\Core\Model\Cart\CartReference;
10
use Commercetools\Core\Model\Cart\ReplicaCartDraft;
11
use Commercetools\Core\Model\Common\Context;
12
use Commercetools\Core\Model\Order\OrderReference;
13
use Commercetools\Core\Request\AbstractCreateRequest;
14
use Commercetools\Core\Response\ApiResponseInterface;
15
use Commercetools\Core\Model\MapperInterface;
16
17
/**
18
 * @package Commercetools\Core\Request\Carts
19
 * @link https://docs.commercetools.com/http-api-projects-carts.html#replicate-existing-cart-or-order-to-a-new-cart
20
 * @method Cart mapResponse(ApiResponseInterface $response)
21
 * @method Cart mapFromResponse(ApiResponseInterface $response, MapperInterface $mapper = null)
22
 */
23
class CartReplicateRequest extends AbstractCreateRequest
24
{
25
    protected $resultClass = Cart::class;
26
27
    /**
28
     * @param ReplicaCartDraft $replicaCartDraft
29
     * @param Context $context
30
     */
31 2
    public function __construct(ReplicaCartDraft $replicaCartDraft, Context $context = null)
32
    {
33 2
        parent::__construct(CartsEndpoint::endpoint(), $replicaCartDraft, $context);
34 2
    }
35
36
    /**
37
     * @param ReplicaCartDraft $replicaCartDraft
38
     * @param Context $context
39
     * @return static
40
     */
41 2
    public static function ofReplicaCartDraft(ReplicaCartDraft $replicaCartDraft, Context $context = null)
42
    {
43 2
        return new static($replicaCartDraft, $context);
44
    }
45
46
    /**
47
     * @param CartReference $cart
48
     * @param Context $context
49
     * @return static
50
     */
51 1
    public static function ofCartReference(CartReference $cart, Context $context = null)
52
    {
53 1
        return static::ofReplicaCartDraft(ReplicaCartDraft::ofCart($cart, $context), $context);
54
    }
55
56
    /**
57
     * @param $id
58
     * @param Context $context
59
     * @return static
60
     */
61 1
    public static function ofCartId($id, Context $context = null)
62
    {
63 1
        return static::ofCartReference(CartReference::ofId($id, $context), $context);
64
    }
65
66
    /**
67
     * @param OrderReference $order
68
     * @param Context $context
69
     * @return static
70
     */
71 1
    public static function ofOrderReference(OrderReference $order, Context $context = null)
72
    {
73 1
        return static::ofReplicaCartDraft(ReplicaCartDraft::ofOrder($order, $context), $context);
74
    }
75
76
    /**
77
     * @param $id
78
     * @param Context $context
79
     * @return static
80
     */
81 1
    public static function ofOrderId($id, Context $context = null)
82
    {
83 1
        return static::ofOrderReference(OrderReference::ofId($id, $context), $context);
84
    }
85
86
    /**
87
     * @return string
88
     * @internal
89
     */
90 2
    protected function getPath()
91
    {
92 2
        return (string)$this->getEndpoint() . '/replicate' . $this->getParamString();
93
    }
94
}
95