Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
38 / 38
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Workstation
100.00% covered (success)
100.00%
38 / 38
100.00% covered (success)
100.00%
2 / 2
6
100.00% covered (success)
100.00%
1 / 1
 readResponse
100.00% covered (success)
100.00%
32 / 32
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
10/**
11  * Handle requests concerning services
12  *
13  */
14class Workstation extends BaseController
15{
16    /**
17     * @return \Psr\Http\Message\ResponseInterface
18     */
19    #[\Override]
20    public function readResponse(
21        \Psr\Http\Message\RequestInterface $request,
22        \Psr\Http\Message\ResponseInterface $response,
23        array $args
24    ): \Psr\Http\Message\ResponseInterface {
25        $workstation = \App::$http->readGetResult('/workstation/', [
26            'resolveReferences' => 2,
27            'gql' => Helper\GraphDefaults::getWorkstation()
28        ])->getEntity();
29        if (! $workstation->hasId()) {
30            return \BO\Slim\Render::redirect(
31                'index',
32                array(
33                    'error' => 'login_failed'
34                )
35            );
36        }
37        $workstation->getUseraccount()->testPermissions(['appointment']);
38        $validator = $request->getAttribute('validator');
39        $selectedTime = $validator->getParameter('time')->isString()->getValue();
40        $selectedTime = ($selectedTime) ? $selectedTime : null;
41        $selectedProcessId = $validator->getParameter('selectedprocess')->isNumber()->getValue();
42        $calledProcessId = $validator->getParameter('calledprocess')->isNumber()->getValue();
43        $selectedScope = $validator->getParameter('selectedscope')->isNumber()->getValue();
44
45        return \BO\Slim\Render::withHtml(
46            $response,
47            'page/workstation.twig',
48            array(
49                'title' => 'Sachbearbeiter',
50                'menuActive' => 'workstation',
51                'workstation' => $workstation,
52                'selectedDate' => $this->getSelectedDate($validator),
53                'selectedTime' => $selectedTime,
54                'selectedProcess' => $selectedProcessId,
55                'selectedScope' => $selectedScope,
56                'calledProcess' => $calledProcessId,
57            )
58        );
59    }
60
61    protected function getSelectedDate($validator)
62    {
63        $selectedDate = $validator->getParameter('date')->isString()->getValue();
64        $selectedDateTime = $selectedDate ?
65            (new \DateTimeImmutable($selectedDate))->setTime(\App::$now->format('H'), \App::$now->format('i')) :
66            \App::$now;
67        $selectedDate = ($selectedDateTime < \App::$now) ? \App::$now : $selectedDateTime;
68        return $selectedDate->format('Y-m-d');
69    }
70}