Passed
Push — main ( 7189b9...23cbe4 )
by Vasil
03:17
created

CreateShipmentRequestFactory   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 15
ccs 5
cts 5
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 9 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace VasilDakov\Speedy\Service\Shipment;
6
7
use VasilDakov\Speedy\Serializer\SerializerFactory;
8
9
use function json_encode;
10
11
/**
12
 * Class CreateShipmentRequestFactory
13
 *
14
 * @author Vasil Dakov <[email protected]>
15
 * @copyright 2009-2022 Neutrino.bg
16
 * @version 1.0
17
 */
18
class CreateShipmentRequestFactory
19
{
20
    /**
21
     * @param array $array
22
     * @return CreateShipmentRequest
23
     */
24 1
    public function __invoke(array $array): CreateShipmentRequest
25
    {
26 1
        $serializer = (new SerializerFactory())();
27 1
        $json = json_encode($array);
28
29
        /** @var CreateShipmentRequest $request */
30 1
        $request = $serializer->deserialize($json, CreateShipmentRequest::class, 'json');
31
32 1
        return $request;
33
    }
34
}
35