Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
88.24% covered (warning)
88.24%
30 / 34
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Queue
88.24% covered (warning)
88.24%
30 / 34
0.00% covered (danger)
0.00%
0 / 1
8.10
0.00% covered (danger)
0.00%
0 / 1
 readResponse
88.24% covered (warning)
88.24%
30 / 34
0.00% covered (danger)
0.00%
0 / 1
8.10
1<?php
2
3/**
4 *
5 * @package Zmscalldisplay
6 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
7 *
8 */
9
10namespace BO\Zmscalldisplay;
11
12use BO\Slim\Render;
13use Psr\Http\Message\RequestInterface;
14use Psr\Http\Message\ResponseInterface;
15
16class Queue extends BaseController
17{
18    /**
19     * @SuppressWarnings(UnusedFormalParameter)
20     * @return ResponseInterface
21     */
22    public function readResponse(
23        RequestInterface $request,
24        ResponseInterface $response,
25        array $args
26    ) {
27        $validator = $request->getAttribute('validator');
28        $displayNumber = $validator->getParameter('display')->isNumber()->getValue();
29
30        $calldisplay = new Helper\Calldisplay($request);
31
32        $queueList = \App::$http
33            ->readPostResult('/calldisplay/queue/', $calldisplay->getEntity(false), [
34                'statusList' => $calldisplay::getRequestedQueueStatus($request)
35            ])
36            ->getCollection();
37
38        $queueList = ($queueList) ?
39            $queueList->withStatus($calldisplay::getRequestedQueueStatus($request))->sortByCallTime('descending') :
40            new \BO\Zmsentities\Collection\QueueList();
41
42        if ($displayNumber === 1) {
43            $queueList = $queueList->chunk(10)[0];
44        } elseif ($displayNumber === 2) {
45            $queueList = $queueList->chunk(10)[1] ?? new \BO\Zmsentities\Collection\QueueList();
46        }
47
48        $displayInfo = null;
49        $callDisplayInfo = $calldisplay->getEntity(true);
50
51        if ($callDisplayInfo->getClusterList()->count() > 0 && $callDisplayInfo->getClusterList()->getFirst()->callDisplayText) {
52            $displayInfo = $callDisplayInfo->getClusterList()->getFirst()->callDisplayText;
53        } elseif (
54            $callDisplayInfo->getScopeList()->count() > 0
55            && $callDisplayInfo->getScopeList()->getFirst()->preferences['queue']['callDisplayText']
56        ) {
57            $displayInfo = $callDisplayInfo->getScopeList()->getFirst()->preferences['queue']['callDisplayText'];
58        }
59
60        return Render::withHtml(
61            $response,
62            'block/queue/queueTable.twig',
63            array(
64                'text' => 'asdsadsa',
65                'tableSettings' => $validator->getParameter('tableLayout')->isArray()->getValue(),
66                'calldisplay' => $calldisplay->getEntity(false),
67                'scope' => $calldisplay->getSingleScope(),
68                'queueList' => $queueList,
69                'displayInfo' => $displayInfo
70            )
71        );
72    }
73}