Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
96.67% covered (success)
96.67%
29 / 30
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
Index
96.67% covered (success)
96.67%
29 / 30
50.00% covered (danger)
50.00%
1 / 2
5
0.00% covered (danger)
0.00%
0 / 1
 readResponse
95.24% covered (success)
95.24%
20 / 21
0.00% covered (danger)
0.00%
0 / 1
4
 getDefaultParamters
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3/**
4 *
5 * @package Zmscalldisplay
6 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
7 *
8 */
9
10namespace BO\Zmscalldisplay;
11
12use Psr\Http\Message\RequestInterface;
13use Psr\Http\Message\ResponseInterface;
14use BO\Slim\Request as SlimRequest;
15
16/**
17 * Handle requests concerning services
18 */
19class Index extends BaseController
20{
21    /**
22     * @SuppressWarnings(UnusedFormalParameter)
23     * @param RequestInterface|SlimRequest $request
24     * @param ResponseInterface $response
25     * @return ResponseInterface
26     * @psalm-api
27     */
28    public function readResponse(
29        RequestInterface $request,
30        ResponseInterface $response,
31        array $args
32    ) {
33        $validator = $request->getAttribute('validator');
34        $defaultTemplate = $validator->getParameter("template")
35            ->isPath()
36            ->setDefault('default_platz')
37            ->getValue();
38
39        $calldisplayHelper = (new Helper\Calldisplay($request));
40        $parameters = $this->getDefaultParamters($request, $calldisplayHelper);
41
42        $zoom = $validator->getParameter('zoom')->isString()->getValue();
43        if ($zoom) {
44            $parameters['zoom'] = (float) $zoom;
45        }
46
47        if ($request->getParam('qrcode') && $request->getParam('qrcode') == 1) {
48            $parameters['showQrCode'] = true;
49            $parameters['webcalldisplay'] = $this->getWebcallDisplayUrl($request, $parameters);
50        }
51        $calldisplay = $calldisplayHelper->getEntity();
52
53        $template = (new Helper\TemplateFinder($defaultTemplate))->setCustomizedTemplate($calldisplay);
54        $parameters['displayNumber'] = $request->getParam('display') ?? null;
55
56        return \BO\Slim\Render::withHtml(
57            $response,
58            $template->getTemplate(),
59            $parameters
60        );
61    }
62
63    /**
64     * @param RequestInterface $request
65     * @param Helper\Calldisplay $calldisplayHelper
66     * @return array
67     */
68    protected function getDefaultParamters(RequestInterface $request, $calldisplayHelper)
69    {
70        $calldisplay = $calldisplayHelper->getEntity();
71
72        return [
73            'debug' => \App::DEBUG,
74            'queueStatusRequested' => implode(',', $calldisplayHelper::getRequestedQueueStatus($request)),
75            'scopeList' => $calldisplay->getFullScopeList()->getIdsCsv(),
76            'title' => 'Aufrufanzeige',
77            'calldisplay' => $calldisplay,
78            'showQrCode' => false,
79        ];
80    }
81}