Completed
Push — feature/EVO-7964_fundInfo-exte... ( eda009...805323 )
by Bastian
62:49
created

FundinfoRequestTransformation   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 45
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A transformRequest() 0 21 1
1
<?php
2
/**
3
 * FundinfoRequestTransformation
4
 */
5
6
namespace Graviton\ProxyExtensionBundle\Transformation;
7
8
use Graviton\ProxyBundle\Transformation\RequestTransformationInterface;
9
use Symfony\Component\HttpFoundation\Request;
10
11
/**
12
 * Class FundinfoRequestTransformation
13
 *
14
 * @package Graviton\ProxyExtensionBundle\Transformation
15
 * @author  List of contributors <https://github.com/libgraviton/graviton/graphs/contributors>
16
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
17
 * @link    http://swisscom.ch
18
 */
19
class FundinfoRequestTransformation implements RequestTransformationInterface
20
{
21
    /** @var array  */
22
    private $configuration;
23
24
    /**
25
     * FundinfoRequestTransformation constructor.
26
     *
27
     * @param array $configuration Configuration options
28
     */
29
    public function __construct(array $configuration)
30
    {
31
        $this->configuration = $configuration;
32
    }
33
34
    /**
35
     * @inheritDoc
36
     *
37
     * @param Request $requestIn  Currently incoming request
38
     * @param Request $requestOut Transformed request
39
     *
40
     * @return Request
41
     */
42
    public function transformRequest(Request $requestIn, Request $requestOut)
43
    {
44
        $options = $this->configuration['custom']['fundinfo'];
45
        preg_match("@[^/]+$@", $requestIn->getRequestUri(), $pathItems);
46
47
        $queryString = str_replace("{shareClass}", $pathItems[0], $options['queryStringTemplate']);
48
        $queryString = str_replace("{documentType}", 'KID', $queryString);
49
        $queryString = str_replace("{language}", 'de', $queryString);
50
51
        $url = sprintf(
52
            '%s?%s&%s',
53
            $options['uri'],
54
            'apiKey='.$options['apiKey'],
55
            $queryString
56
        );
57
58
        return Request::create(
59
            $url,
60
            'GET'
61
        );
62
    }
63
}
64