Passed
Push — feature/ECO-1705-dependency-cl... ( c4bdbf )
by Andrey
06:46
created

IpnController::convertHeaders()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 9
rs 9.6666
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Apache OSL-2
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\AmazonPay\Communication\Controller;
9
10
use Spryker\Shared\Log\LoggerTrait;
11
use Spryker\Zed\Kernel\Communication\Controller\AbstractController;
12
use Symfony\Component\HttpFoundation\Request;
13
use Symfony\Component\HttpFoundation\Response;
14
15
/**
16
 * @method \SprykerEco\Zed\AmazonPay\Business\AmazonPayFacadeInterface getFacade()
17
 */
18
class IpnController extends AbstractController
19
{
20
    use LoggerTrait;
21
22
    /**
23
     * @return \Symfony\Component\HttpFoundation\Response
24
     */
25
    public function endpointAction(Request $request)
26
    {
27
        $headers = $this->convertHeaders($request->headers->all());
28
        $body = file_get_contents('php://input');
29
30
        $ipnRequestTransfer = $this->getFacade()->convertAmazonPayIpnRequest($headers, $body);
31
        $this->getFacade()->handleAmazonPayIpnRequest($ipnRequestTransfer);
32
33
        return new Response('Request has been processed');
34
    }
35
36
    /**
37
     * @param array $headers
38
     *
39
     * @return array
40
     */
41
    protected function convertHeaders(array $headers)
42
    {
43
        $assocHeaders = [];
44
45
        foreach ($headers as $key => $headerValues) {
46
            $assocHeaders[$key] = $headerValues[0];
47
        }
48
49
        return $assocHeaders;
50
    }
51
}
52