Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
TicketprinterByScope
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
5.00
0.00% covered (danger)
0.00%
0 / 1
 readResponse
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
5.00
1<?php
2
3/**
4 *
5 * @package Zmsticketprinter
6 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
7 *
8 */
9
10namespace BO\Zmsticketprinter;
11
12use BO\Slim\Render;
13use Psr\Http\Message\RequestInterface;
14use Psr\Http\Message\ResponseInterface;
15use BO\Zmsticketprinter\Helper\QueueListHelper;
16use BO\Zmsticketprinter\Helper\TemplateFinder;
17
18class TicketprinterByScope extends BaseController
19{
20    /**
21     * @SuppressWarnings(UnusedFormalParameter)
22     * @return ResponseInterface
23     */
24    public function readResponse(
25        RequestInterface $request,
26        ResponseInterface $response,
27        array $args
28    ) {
29        Helper\HomeUrl::create($request);
30
31        // TODO: Remove unused config request - https://github.com/it-at-m/eappointment/issues/1807
32        //$config = \App::$http->readGetResult('/config/', [], \App::SECURE_TOKEN)->getEntity();
33        $validator = $request->getAttribute('validator');
34        $defaultTemplate = $validator->getParameter("template")
35            ->isPath()
36            ->setDefault('default')
37            ->getValue();
38        $ticketprinterHelper = (new Helper\Ticketprinter($args, $request));
39        $ticketprinter = $ticketprinterHelper->getEntity();
40        $scope = $ticketprinter->getScopeList()->getFirst();
41        $department = \App::$http->readGetResult('/scope/' . $scope->id . '/department/')->getEntity();
42        $organisation = $ticketprinterHelper->getOrganisation();
43
44        $queueListHelper = new QueueListHelper($scope);
45
46        $template = (new TemplateFinder($defaultTemplate))->setCustomizedTemplate($ticketprinter, $organisation);
47
48        $hasDisabledButton = false;
49        foreach ($ticketprinter->buttons as $button) {
50            if (!isset($button['enabled']) || $button['enabled'] != 1) {
51                $hasDisabledButton = true;
52                break;
53            }
54        }
55
56        return Render::withHtml(
57            $response,
58            $template->getTemplate(),
59            array(
60                'debug' => \App::DEBUG,
61                'enabled' => $ticketprinter->isEnabled()
62                    || !$organisation->getPreference('ticketPrinterProtectionEnabled'),
63                'title' => 'Wartennumer ziehen',
64                'ticketprinter' => $ticketprinter,
65                'organisation' => $organisation,
66                'department' => $department,
67                'scope' => $scope,
68                'queueList' => $queueListHelper->getList(),
69                'waitingTime' => $queueListHelper->getEstimatedWaitingTime(),
70                'waitingTimeOptimistic' => $queueListHelper->getOptimisticWaitingTime(),
71                'waitingClients' => $queueListHelper->getClientsBefore(),
72                'buttonDisplay' => $template->getButtonTemplateType($ticketprinter),
73                //'config' => $config,
74                'hasDisabledButton' => $hasDisabledButton
75            )
76        );
77    }
78}