Passed
Push — master ( 18b32f...fa2b73 )
by Jens
08:15
created

ProductProjectionRequestBuilder::getBySlug()   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 3
crap 2
1
<?php
2
// phpcs:disable Generic.Files.LineLength
3
namespace Commercetools\Core\Builder\Request;
4
5
use Commercetools\Core\Request\Products\ProductProjectionByIdGetRequest;
6
use Commercetools\Core\Request\Products\ProductProjectionByKeyGetRequest;
7
use Commercetools\Core\Request\Products\ProductProjectionBySkuGetRequest;
8
use Commercetools\Core\Request\Products\ProductProjectionBySlugGetRequest;
9
use Commercetools\Core\Request\Products\ProductProjectionQueryRequest;
10
use Commercetools\Core\Request\Products\ProductProjectionSearchRequest;
11
use Commercetools\Core\Request\Products\ProductsSuggestRequest;
12
use Commercetools\Core\Model\Common\LocalizedString;
13
14
class ProductProjectionRequestBuilder
15
{
16
17
    /**
18
     * @link https://docs.commercetools.com/http-api-projects-productProjections.html#get-productprojection-by-id
19
     * @param string $id
20
     * @param bool $staged
21
     * @return ProductProjectionByIdGetRequest
22
     */
23
    public function getById($id, $staged = false)
24
    {
25
        $request = ProductProjectionByIdGetRequest::ofId($id)->staged($staged);
26
        return $request;
27
    }
28
29
    /**
30
     * @link https://docs.commercetools.com/http-api-projects-productProjections.html#get-productprojection-by-key
31
     * @param string $key
32
     * @param bool $staged
33
     * @return ProductProjectionByKeyGetRequest
34
     */
35
    public function getByKey($key, $staged = false)
36
    {
37
        $request = ProductProjectionByKeyGetRequest::ofKey($key)->staged($staged);
38
        return $request;
39
    }
40
41
    /**
42
     *
43
     * @param string $sku
44
     * @param bool $staged
45
     * @return ProductProjectionBySkuGetRequest
46
     */
47
    public function getBySku($sku, $staged = false)
48
    {
49
        $request = ProductProjectionBySkuGetRequest::ofSku($sku)->staged($staged);
50
        return $request;
51
    }
52
53
    /**
54
     *
55
     * @param string $slug
56
     * @param array $languages
57
     * @param bool $staged
58
     * @return ProductProjectionBySlugGetRequest
59
     */
60
    public function getBySlug($slug, array $languages, $staged = false)
61
    {
62
        $request = ProductProjectionBySlugGetRequest::ofSlugAndLanguages($slug, $languages)->staged($staged);
63
        return $request;
64
    }
65
66
    /**
67
     * @link https://docs.commercetools.com/http-api-projects-products.html#query-productprojections
68
     * @param bool $staged
69
     * @return ProductProjectionQueryRequest
70
     */
71
    public function query($staged = false)
72
    {
73
        $request = ProductProjectionQueryRequest::of()->staged($staged);
74
        return $request;
75
    }
76
77
    /**
78
     * @link https://docs.commercetools.com/http-api-projects-products-search.html#search-productprojections
79
     * @param bool $staged
80
     * @return ProductProjectionSearchRequest
81
     */
82
    public function search($staged = false)
83
    {
84
        $request = ProductProjectionSearchRequest::of()->staged($staged);
85
        return $request;
86
    }
87
88
    /**
89
     * @link https://docs.commercetools.com/http-api-projects-products-suggestions.html#suggest-query
90
     * @param LocalizedString $keywords
91
     * @param bool $staged
92
     * @return ProductsSuggestRequest
93
     */
94
    public function suggest(LocalizedString $keywords, $staged = false)
95
    {
96
        $request = ProductsSuggestRequest::ofKeywords($keywords)->staged($staged);
97
        return $request;
98
    }
99
100
    /**
101
     * @return ProductProjectionRequestBuilder
102
     */
103
    public function of()
104
    {
105
        return new self();
106
    }
107
}
108