ErrorFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A make() 0 8 3
1
<?php
2
3
namespace Flugg\Responder;
4
5
use Flugg\Responder\Contracts\ErrorFactory as ErrorFactoryContract;
6
use Flugg\Responder\Contracts\ErrorMessageResolver as ErrorMessageResolverContract;
7
use Flugg\Responder\Contracts\ErrorSerializer;
8
9
/**
10
 * A factory class responsible for creating error arrays.
11
 *
12
 * @package flugger/laravel-responder
13
 * @author  Alexander Tømmerås <[email protected]>
14
 * @license The MIT License
15
 */
16
class ErrorFactory implements ErrorFactoryContract
17
{
18
    /**
19
     * A resolver for resolving messages from error codes.
20
     *
21
     * @var \Flugg\Responder\Contracts\ErrorMessageResolver
22
     */
23
    protected $messageResolver;
24
25
    /**
26
     * Construct the factory class.
27
     *
28
     * @param \Flugg\Responder\Contracts\ErrorMessageResolver $messageResolver
29
     */
30 58
    public function __construct(ErrorMessageResolverContract $messageResolver)
31
    {
32 58
        $this->messageResolver = $messageResolver;
33 58
    }
34
35
    /**
36
     * Make an error array from the given error code and message.
37
     *
38
     * @param  \Flugg\Responder\Contracts\ErrorSerializer $serializer
39
     * @param  mixed|null                                 $errorCode
40
     * @param  string|null                                $message
41
     * @param  array|null                                 $data
42
     * @return array
43
     */
44 12
    public function make(ErrorSerializer $serializer, $errorCode = null, string $message = null, array $data = null): array
45
    {
46 12
        if (isset($errorCode) && ! isset($message)) {
47 1
            $message = $this->messageResolver->resolve($errorCode);
48
        }
49
50 12
        return $serializer->format($errorCode, $message, $data);
51
    }
52
}