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 BO\Zmsentities\Collection\QueueList;
14use Psr\Http\Message\RequestInterface;
15use Psr\Http\Message\ResponseInterface;
16
17class Queue extends BaseController
18{
19    /**
20     * @SuppressWarnings(UnusedFormalParameter)
21     * @return ResponseInterface
22     */
23    public function readResponse(
24        RequestInterface $request,
25        ResponseInterface $response,
26        array $args
27    ) {
28        $validator = $request->getAttribute('validator');
29        $displayNumber = $validator->getParameter('display')->isNumber()->getValue();
30
31        $calldisplay = new Helper\Calldisplay($request);
32
33        $queueList = \App::$http
34            ->readPostResult('/calldisplay/queue/', $calldisplay->getEntity(false), [
35                'statusList' => $calldisplay::getRequestedQueueStatus($request)
36            ])
37            ->getCollection();
38
39        $queueList = ($queueList) ?
40            $queueList->withStatus($calldisplay::getRequestedQueueStatus($request))->sortByCallTime('descending') :
41            new QueueList();
42
43        if ($displayNumber === 1) {
44            $queueList = $queueList->chunk(10)[0];
45        } elseif ($displayNumber === 2) {
46            $queueList = $queueList->chunk(10)[1] ?? new QueueList();
47        }
48
49        $callDisplayText = null;
50        $callDisplayInfo = $calldisplay->getEntity(true);
51
52        if ($callDisplayInfo->getClusterList()->count() > 0 && $callDisplayInfo->getClusterList()->getFirst()->callDisplayText) {
53            $callDisplayText = $callDisplayInfo->getClusterList()->getFirst()->callDisplayText;
54        } elseif (
55            $callDisplayInfo->getScopeList()->count() > 0
56            && $callDisplayInfo->getScopeList()->getFirst()->preferences['queue']['callDisplayText']
57        ) {
58            $callDisplayText = $callDisplayInfo->getScopeList()->getFirst()->preferences['queue']['callDisplayText'];
59        }
60
61        return Render::withHtml(
62            $response,
63            'block/queue/queueTable.twig',
64            array(
65                'text' => 'asdsadsa',
66                'tableSettings' => $validator->getParameter('tableLayout')->isArray()->getValue(),
67                'calldisplay' => $calldisplay->getEntity(false),
68                'scope' => $calldisplay->getSingleScope(),
69                'queueList' => $queueList,
70                'callDisplayText' => $callDisplayText
71            )
72        );
73    }
74}