Lines 83.78% 31 / 37
Methods 50.00% 1 / 2
Classes 0.00% 0 / 1
Name Lines Methods CRAP
 readResponse 82.35% 28 / 34 0.00% 0 / 1 6.20
 [BO\Zmsbackend\Api\BaseController] __invoke 100.00% 3 / 3 100.00% 1 / 1 1
16class ProcessListByScopeAndDate extends \BO\Zmsbackend\Api\BaseController
17{
18    /**
19     * @SuppressWarnings(Param)
20     * @return \Psr\Http\Message\ResponseInterface
21     */
22    #[\Override]
23    public function readResponse(
24        \Psr\Http\Message\RequestInterface $request,
25        \Psr\Http\Message\ResponseInterface $response,
26        array $args
27    ) {
28        $showWeek = Validator::param('showWeek')->isNumber()->setDefault(0)->getValue();
29        $dateTime = new \BO\Zmsentities\Helper\DateTime($args['date']);
30        $dateTime = $dateTime->modify(\App::$now->format('H:i'));
31        $dates = [$dateTime];
32
33        if ($showWeek) {
34            $dates = [];
35            $startDate = clone $dateTime->modify('Monday this week');
36            $endDate = clone $dateTime->modify('Sunday this week');
37
38            while ($startDate <= $endDate) {
39                $dates[] = $startDate;
40                $startDate = $startDate->modify('+1 day');
41            }
42        }
43
44        $query = new Query();
45        $scope = $query->readWithWorkstationCount($args['id'], \App::$now, 0, ['none']);
46        if (! $scope || ! $scope->getId()) {
47            throw new \BO\Zmsbackend\Scope\Exception\ScopeNotFound();
48        }
49
50        (new \BO\Zmsbackend\Helper\User($request, 2))->checkPermissions(
51            new \BO\Zmsentities\Useraccount\EntityAccess($scope)
52        );
53
54        $queueList = new QueueList();
55        foreach ($dates as $date) {
56            $queueList->addList($query->readQueueListWithWaitingTime(
57                $scope,
58                $date,
59                2,
60                ['availability', 'scope', 'scopeprovider']
61            ));
62        }
63
64        $archivedProcesses =
65            (new \BO\Zmsbackend\Process\Service\ProcessStatusArchived())->readListByScopesAndDates([$scope->getId()], $dates);
66
67        $message = \BO\Zmsbackend\Api\Response\Message::create($request);
68        $message->data = $queueList->toProcessList()->sortByEstimatedWaitingTime()->withResolveLevel(2);
69        $message->data->addData($archivedProcesses);
70
71        $response = Render::withLastModified($response, time(), '0');
72        $response = Render::withJson($response, $message, 200);
73        return $response;
74    }
75}

Inherited from BO\Zmsbackend\Api\BaseController

20    public function __invoke(RequestInterface $request, ResponseInterface $response, array $args)
21    {
22        $request = $this->initRequest($request);
23        $noCacheResponse = \BO\Slim\Render::withLastModified($response, time(), '0');
24        return $this->readResponse($request, $noCacheResponse, $args);
25    }