CoremediaFactory   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 57
rs 10
c 0
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A createApiRequestExecutor() 0 5 1
A createApiRequestBuilder() 0 3 1
A createUrlConfiguration() 0 3 1
A createUrlBuilder() 0 4 1
A getGuzzleClient() 0 3 1
A createApiClient() 0 6 1
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Client\Coremedia;
9
10
use Spryker\Client\Kernel\AbstractFactory;
11
use SprykerEco\Client\Coremedia\Api\ApiClient;
12
use SprykerEco\Client\Coremedia\Api\ApiClientInterface;
13
use SprykerEco\Client\Coremedia\Api\Builder\RequestBuilder;
14
use SprykerEco\Client\Coremedia\Api\Builder\RequestBuilderInterface;
15
use SprykerEco\Client\Coremedia\Api\Builder\UrlBuilder;
16
use SprykerEco\Client\Coremedia\Api\Builder\UrlBuilderInterface;
17
use SprykerEco\Client\Coremedia\Api\Configuration\UrlConfiguration;
18
use SprykerEco\Client\Coremedia\Api\Configuration\UrlConfigurationInterface;
19
use SprykerEco\Client\Coremedia\Api\Executor\RequestExecutor;
20
use SprykerEco\Client\Coremedia\Api\Executor\RequestExecutorInterface;
21
use SprykerEco\Client\Coremedia\Dependency\Guzzle\CoremediaToGuzzleInterface;
22
23
/**
24
 * @method \SprykerEco\Client\Coremedia\CoremediaConfig getConfig()
25
 */
26
class CoremediaFactory extends AbstractFactory
27
{
28
    /**
29
     * @return \SprykerEco\Client\Coremedia\Api\ApiClientInterface
30
     */
31
    public function createApiClient(): ApiClientInterface
32
    {
33
        return new ApiClient(
34
            $this->createApiRequestBuilder(),
35
            $this->createApiRequestExecutor(),
36
            $this->createUrlBuilder()
37
        );
38
    }
39
40
    /**
41
     * @return \SprykerEco\Client\Coremedia\Api\Builder\RequestBuilderInterface
42
     */
43
    public function createApiRequestBuilder(): RequestBuilderInterface
44
    {
45
        return new RequestBuilder();
46
    }
47
48
    /**
49
     * @return \SprykerEco\Client\Coremedia\Api\Executor\RequestExecutorInterface
50
     */
51
    public function createApiRequestExecutor(): RequestExecutorInterface
52
    {
53
        return new RequestExecutor(
54
            $this->getGuzzleClient(),
55
            $this->getConfig()
56
        );
57
    }
58
59
    /**
60
     * @return \SprykerEco\Client\Coremedia\Api\Builder\UrlBuilderInterface
61
     */
62
    public function createUrlBuilder(): UrlBuilderInterface
63
    {
64
        return new UrlBuilder(
65
            $this->createUrlConfiguration()
66
        );
67
    }
68
69
    /**
70
     * @return \SprykerEco\Client\Coremedia\Api\Configuration\UrlConfigurationInterface
71
     */
72
    public function createUrlConfiguration(): UrlConfigurationInterface
73
    {
74
        return new UrlConfiguration($this->getConfig());
75
    }
76
77
    /**
78
     * @return \SprykerEco\Client\Coremedia\Dependency\Guzzle\CoremediaToGuzzleInterface
79
     */
80
    public function getGuzzleClient(): CoremediaToGuzzleInterface
81
    {
82
        return $this->getProvidedDependency(CoremediaDependencyProvider::CLIENT_GUZZLE);
83
    }
84
}
85