Completed
Push — master ( 15f141...d8571c )
by
unknown
04:34
created

RestApiEventSubscriberFactory   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 7
dl 0
loc 35
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B create() 0 24 4
1
<?php
2
3
namespace MediaMonks\RestApi\EventSubscriber;
4
5
use MediaMonks\RestApi\Model\ResponseModel;
6
use MediaMonks\RestApi\Model\ResponseModelFactory;
7
use MediaMonks\RestApi\Model\ResponseModelInterface;
8
use MediaMonks\RestApi\Request\RequestMatcher;
9
use MediaMonks\RestApi\Request\RequestTransformer;
10
use MediaMonks\RestApi\Response\ResponseTransformer;
11
use MediaMonks\RestApi\Serializer\JsonSerializer;
12
use MediaMonks\RestApi\Serializer\SerializerInterface;
13
14
class RestApiEventSubscriberFactory
15
{
16
    /**
17
     * @param array $whitelist
18
     * @param array $blacklist
19
     * @param SerializerInterface|null $serializer
20
     * @param ResponseModelInterface|null $responseModel
21
     * @param array $options
22
     * @return RestApiEventSubscriber
23
     */
24 1
    public static function create(
25
        array $whitelist = [],
26
        array $blacklist = [],
27
        SerializerInterface $serializer = null,
28
        ResponseModelInterface $responseModel = null,
29
        $options = []
30
    ) {
31 1
        if (empty($whitelist)) {
32 1
            $whitelist = ['~^/api/$~', '~^/api~'];
33 1
        }
34 1
        if (empty($serializer)) {
35 1
            $serializer = new JsonSerializer();
36 1
        }
37 1
        if (empty($responseModel)) {
38 1
            $responseModel = new ResponseModel();
39 1
        }
40
41 1
        $requestMatcher = new RequestMatcher($whitelist, $blacklist);
42 1
        $requestTransformer = new RequestTransformer($serializer);
43 1
        $responseModelFactory = new ResponseModelFactory($responseModel);
44 1
        $responseTransformer = new ResponseTransformer($serializer, $responseModelFactory, $options);
45
46 1
        return new RestApiEventSubscriber($requestMatcher, $requestTransformer, $responseTransformer);
47
    }
48
}
49