Completed
Push — master ( 78334d...666726 )
by Pavel
01:41
created

RestActionAbstract::repository()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php namespace Pz\Doctrine\Rest;
2
3
abstract class RestActionAbstract
4
{
5
    /**
6
     * @var RestRepository
7
     */
8
    protected $repository;
9
10
    /**
11
     * @var RestResponseFactory
12
     */
13
    protected $response;
14
15
    /**
16
     * @param RestRequest $request
17
     *
18
     * @return RestResponse
19
     */
20
    abstract protected function handle(RestRequest $request);
21
22
    /**
23
     * RestActionAbstract constructor.
24
     *
25
     * @param RestRepository      $repository
26
     * @param RestResponseFactory $response
27
     */
28 8
    public function __construct(RestRepository $repository, RestResponseFactory $response)
29
    {
30 8
        $this->repository = $repository;
31 8
        $this->response = $response;
32 8
    }
33
34
    /**
35
     * @param RestRequest $request
36
     *
37
     * @return RestResponse
38
     */
39 8
    public function dispatch(RestRequest $request)
40
    {
41
        try {
42 8
            return $this->handle($request);
43
        } catch (\Exception $e) {
44
            return $this->response()->exception($e);
45
        }
46
    }
47
48
    /**
49
     * @return RestRepository
50
     */
51 8
    public function repository()
52
    {
53 8
        return $this->repository;
54
    }
55
56
    /**
57
     * @return RestResponseFactory
58
     */
59 8
    public function response()
60
    {
61 8
        return $this->response;
62
    }
63
}
64