Template::createTemplateResponse()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 2
crap 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Acelaya\Website\Action;
5
6
use Interop\Http\ServerMiddleware\DelegateInterface;
7
use Psr\Http\Message\ResponseInterface as Response;
8
use Psr\Http\Message\ServerRequestInterface as Request;
9
use Zend\Diactoros\Response\HtmlResponse;
10
11
class Template extends AbstractAction
12
{
13
    const NOT_FOUND_TEMPLATE = 'Acelaya::errors/404';
14
15
    /**
16
     * Returns the content to render
17
     *
18
     * @param Request $request
19
     * @param DelegateInterface $delegate
20 3
     * @return null|Response
21
     */
22 3
    public function dispatch(Request $request, DelegateInterface $delegate): Response
23
    {
24
        return $this->createTemplateResponse($request);
25
    }
26
27
    /**
28
     * Creates an HtmlResponse rendering current route's template
29
     *
30
     * @param Request $request
31
     * @param array $viewParams
32 6
     * @return HtmlResponse
33
     */
34 6
    protected function createTemplateResponse(Request $request, array $viewParams = []): HtmlResponse
35 6
    {
36 6
        $template = $request->getAttribute('template', self::NOT_FOUND_TEMPLATE);
37
        $status = $template === self::NOT_FOUND_TEMPLATE ? self::STATUS_NOT_FOUND : self::STATUS_OK;
38
        return new HtmlResponse($this->renderer->render($template, $viewParams), $status);
39
    }
40
}
41