Lines 93.33% 56 / 60
Methods 80.00% 4 / 5
Classes 0.00% 0 / 1
Name Lines Methods CRAP
 readResponse 88.23% 30 / 34 0.00% 0 / 1 8.10
 [BO\Zmscalldisplay\BaseController] __invoke 100.00% 3 / 3 100.00% 1 / 1 1
 [BO\Zmscalldisplay\BaseController] buildQuery 100.00% 8 / 8 100.00% 1 / 1 4
 [BO\Zmscalldisplay\BaseController] buildHashFromParameterList 100.00% 10 / 10 100.00% 1 / 1 4
 [BO\Zmscalldisplay\BaseController] getWebcallDisplayUrl 100.00% 5 / 5 100.00% 1 / 1 1
17class Queue extends BaseController
18{
19    /**
20     * @SuppressWarnings(UnusedFormalParameter)
21     * @return ResponseInterface
22     * @psalm-api
23     */
24    public function readResponse(
25        RequestInterface $request,
26        ResponseInterface $response,
27        array $args
28    ) {
29        $validator = $request->getAttribute('validator');
30        $displayNumber = $validator->getParameter('display')->isNumber()->getValue();
31
32        $calldisplay = new Helper\Calldisplay($request);
33
34        $queueList = \App::$http
35            ->readPostResult('/calldisplay/queue/', $calldisplay->getEntity(false), [
36                'statusList' => $calldisplay::getRequestedQueueStatus($request)
37            ])
38            ->getCollection();
39
40        $queueList = ($queueList) ?
41            $queueList->withStatus($calldisplay::getRequestedQueueStatus($request))->sortByCallTime('descending') :
42            new QueueList();
43
44        if ($displayNumber === 1) {
45            $queueList = $queueList->chunk(10)[0];
46        } elseif ($displayNumber === 2) {
47            $queueList = $queueList->chunk(10)[1] ?? new QueueList();
48        }
49
50        $callDisplayText = null;
51        $callDisplayInfo = $calldisplay->getEntity(true);
52
53        if ($callDisplayInfo->getClusterList()->count() > 0 && $callDisplayInfo->getClusterList()->getFirst()->callDisplayText) {
54            $callDisplayText = $callDisplayInfo->getClusterList()->getFirst()->callDisplayText;
55        } elseif (
56            $callDisplayInfo->getScopeList()->count() > 0
57            && $callDisplayInfo->getScopeList()->getFirst()->preferences['queue']['callDisplayText']
58        ) {
59            $callDisplayText = $callDisplayInfo->getScopeList()->getFirst()->preferences['queue']['callDisplayText'];
60        }
61
62        return Render::withHtml(
63            $response,
64            'block/queue/queueTable.twig',
65            array(
66                'text' => 'asdsadsa',
67                'tableSettings' => $validator->getParameter('tableLayout')->isArray()->getValue(),
68                'calldisplay' => $calldisplay->getEntity(false),
69                'scope' => $calldisplay->getSingleScope(),
70                'queueList' => $queueList,
71                'callDisplayText' => $callDisplayText
72            )
73        );
74    }
75}

Inherited from BO\Zmscalldisplay\BaseController

24    public function __invoke(RequestInterface $request, ResponseInterface $response, array $args)
25    {
26        $request = $this->initRequest($request);
27        $noCacheResponse = \BO\Slim\Render::withLastModified($response, time(), '0');
28        return $this->readResponse($request, $noCacheResponse, $args);
29    }
31    protected function buildQuery(string $target, RequestInterface $request): string
32    {
33        $queryArr  = [];
34        $allParams = array_merge(static::$hashParameter[$target], ['template']);
35        $currentQP = $request->getQueryParams();
36        foreach ($allParams as $parameter) {
37            if (isset($currentQP[$parameter]) && $currentQP[$parameter]) {
38                $queryArr[$parameter] = $currentQP[$parameter];
39            }
40        }
41
42        $queryArr['hmac'] = $this->buildHashFromParameterList($target, $request);
43
44        return http_build_query($queryArr);
45    }
47    protected function buildHashFromParameterList(string $target, RequestInterface $request)
48    {
49        $paramsToHash = [];
50        $currentQP = $request->getQueryParams();
51        foreach (static::$hashParameter[$target] as $parameter) {
52            if (isset($currentQP[$parameter]) && $currentQP[$parameter]) {
53                $paramsToHash[$parameter] = $currentQP[$parameter];
54            }
55        }
56
57        return SlimHelper::hashQueryParameters(
58            $target,
59            $paramsToHash,
60            static::$hashParameter[$target]
61        );
62    }
71    protected function getWebcallDisplayUrl(RequestInterface $request, array $parameters)
72    {
73        $target = 'webcalldisplay';
74        $config = \App::$http->readGetResult('/config/')->getEntity();
75
76        $url = '' . $config->toProperty()->webcalldisplay->baseUrl->get();
77        $url .= '?' . $this->buildQuery($target, $request);
78
79        return $url;
80    }