Passed
Pull Request — master (#5)
by Samuel
10:42 queued 08:39
created

NotFoundHttpHandler   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 30
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 7 1
A getNotFoundMessage() 0 11 3
1
<?php
2
3
namespace SMartins\Exceptions\Handlers;
4
5
use SMartins\Exceptions\JsonApi\Error;
6
use SMartins\Exceptions\JsonApi\Source;
7
8
class NotFoundHttpHandler extends AbstractHandler
9
{
10
    /**
11
     * {@inheritdoc}
12
     */
13
    public function handle()
14
    {
15
        return (new Error)->setStatus($this->getStatusCode())
16
            ->setCode($this->getCode('not_found_http'))
17
            ->setSource((new Source())->setPointer($this->getDefaultPointer()))
18
            ->setTitle($this->getDefaultTitle())
19
            ->setDetail($this->getNotFoundMessage());
20
    }
21
22
    /**
23
     * Get message based on file. If file is RouteCollection return specific message.
24
     *
25
     * @return string
26
     */
27
    public function getNotFoundMessage()
28
    {
29
        $message = ! empty($this->exception->getMessage())
30
            ? $this->exception->getMessage()
31
            : class_basename($this->exception);
32
33
        if (basename($this->exception->getFile()) === 'RouteCollection.php') {
34
            $message = __('exception::exceptions.not_found_http.message');
35
        }
36
37
        return $message;
38
    }
39
}
40