Responder::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 2
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Flugg\Responder;
4
5
use Flugg\Responder\Contracts\Responder as ResponderContract;
6
use Flugg\Responder\Http\Responses\ErrorResponseBuilder;
7
use Flugg\Responder\Http\Responses\SuccessResponseBuilder;
8
9
/**
10
 * A service class responsible for building responses.
11
 *
12
 * @package flugger/laravel-responder
13
 * @author  Alexander Tømmerås <[email protected]>
14
 * @license The MIT License
15
 */
16
class Responder implements ResponderContract
17
{
18
    /**
19
     * A builder for building success responses.
20
     *
21
     * @var \Flugg\Responder\Http\Responses\SuccessResponseBuilder
22
     */
23
    protected $successResponseBuilder;
24
25
    /**
26
     * A builder for building error responses.
27
     *
28
     * @var \Flugg\Responder\Http\Responses\ErrorResponseBuilder
29
     */
30
    protected $errorResponseBuilder;
31
32
    /**
33
     * Construct the service class.
34
     *
35
     * @param \Flugg\Responder\Http\Responses\SuccessResponseBuilder $successResponseBuilder
36
     * @param \Flugg\Responder\Http\Responses\ErrorResponseBuilder   $errorResponseBuilder
37
     */
38 57
    public function __construct(SuccessResponseBuilder $successResponseBuilder, ErrorResponseBuilder $errorResponseBuilder)
39
    {
40 57
        $this->successResponseBuilder = $successResponseBuilder;
41 57
        $this->errorResponseBuilder = $errorResponseBuilder;
42 57
    }
43
44
    /**
45
     * Build a successful response.
46
     *
47
     * @param  mixed                                                          $data
48
     * @param  callable|string|\Flugg\Responder\Transformers\Transformer|null $transformer
49
     * @param  string|null                                                    $resourceKey
50
     * @return \Flugg\Responder\Http\Responses\SuccessResponseBuilder
51
     */
52 56
    public function success($data = null, $transformer = null, string $resourceKey = null): SuccessResponseBuilder
53
    {
54 56
        return $this->successResponseBuilder->transform($data, $transformer, $resourceKey);
55
    }
56
57
    /**
58
     * Build an error response.
59
     *
60
     * @param  mixed|null  $errorCode
61
     * @param  string|null $message
62
     * @return \Flugg\Responder\Http\Responses\ErrorResponseBuilder
63
     */
64 10
    public function error($errorCode = null, string $message = null): ErrorResponseBuilder
65
    {
66 10
        return $this->errorResponseBuilder->error($errorCode, $message);
67
    }
68
}