Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
32 / 32
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Counter
100.00% covered (success)
100.00%
32 / 32
100.00% covered (success)
100.00%
2 / 2
6
100.00% covered (success)
100.00%
1 / 1
 readResponse
100.00% covered (success)
100.00%
26 / 26
100.00% covered (success)
100.00%
1 / 1
3
 getSelectedDate
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3/**
4 * @package Zmsadmin
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsadmin;
9
10class Counter extends BaseController
11{
12    /**
13     * @SuppressWarnings(Param)
14     * @return \Psr\Http\Message\ResponseInterface
15     */
16    #[\Override]
17    public function readResponse(
18        \Psr\Http\Message\RequestInterface $request,
19        \Psr\Http\Message\ResponseInterface $response,
20        array $args
21    ): \Psr\Http\Message\ResponseInterface {
22        $workstation = \App::$http->readGetResult('/workstation/', ['resolveReferences' => 2])->getEntity();
23        $validator = $request->getAttribute('validator');
24        $selectedTime = $validator->getParameter('time')->isString()->getValue();
25        $selectedTime = ($selectedTime) ? $selectedTime : null;
26        $selectedProcess = $validator->getParameter('selectedprocess')->isNumber()->getValue();
27        $selectedScope = $validator->getParameter('selectedscope')->isNumber()->getValue();
28
29        if (!$workstation->hasId()) {
30            return \BO\Slim\Render::redirect(
31                'index',
32                array(
33                    'error' => 'login_failed'
34                )
35            );
36        }
37
38        $workstation->getUseraccount()->testPermissions(['counter']);
39
40        return \BO\Slim\Render::withHtml(
41            $response,
42            'page/counter.twig',
43            array(
44                'title' => 'Tresen',
45                'menuActive' => 'counter',
46                'selectedDate' => $this->getSelectedDate($validator),
47                'selectedTime' => $selectedTime,
48                'selectedProcess' => $selectedProcess,
49                'selectedScope' => $selectedScope,
50                'workstation' => $workstation->getArrayCopy()            )
51        );
52    }
53
54    protected function getSelectedDate($validator)
55    {
56        $selectedDate = $validator->getParameter('date')->isString()->getValue();
57        $selectedDateTime = $selectedDate ?
58            (new \DateTimeImmutable($selectedDate))->setTime(\App::$now->format('H'), \App::$now->format('i')) :
59            \App::$now;
60        $selectedDate = ($selectedDateTime < \App::$now) ? \App::$now : $selectedDateTime;
61        return $selectedDate->format('Y-m-d');
62    }
63}