format()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 14
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 8
c 2
b 1
f 0
dl 0
loc 14
rs 10
cc 3
nc 2
nop 2
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Glue\FirstData\Plugin\CheckoutRestApi;
9
10
use Spryker\Glue\CheckoutRestApi\CheckoutRestApiConfig;
11
use Spryker\Glue\GlueApplication\Rest\Request\Data\RestRequestInterface;
12
use Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\FormatResponseDataPluginInterface;
13
use Spryker\Glue\Kernel\AbstractPlugin;
14
15
class FirstDataCreditCardParametersCheckoutDataFormatResponsePlugin extends AbstractPlugin implements FormatResponseDataPluginInterface
16
{
17
    /**
18
     * {@inheritDoc}
19
     * - Formats `data.attributes.firstDataCreditCardParameters` in checkout data response to get rid of null values.
20
     *
21
     * @api
22
     *
23
     * @param \Spryker\Glue\GlueApplication\Rest\Request\Data\RestRequestInterface $request
24
     * @param array $preparedResponseData
25
     *
26
     * @return array
27
     */
28
    public function format(RestRequestInterface $request, array $preparedResponseData): array
29
    {
30
        if (
31
            $request->getResource()->getType() !== CheckoutRestApiConfig::RESOURCE_CHECKOUT_DATA
32
            || empty($preparedResponseData['data']['attributes']['firstDataCreditCardParameters'])
33
        ) {
34
            return $preparedResponseData;
35
        }
36
37
        $parameters = $preparedResponseData['data']['attributes']['firstDataCreditCardParameters'];
38
        $firstDataCreditCardParameters = array_filter($parameters);
39
        $preparedResponseData['data']['attributes']['firstDataCreditCardParameters'] = $firstDataCreditCardParameters;
40
41
        return $preparedResponseData;
42
    }
43
}
44