Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
95.83% covered (success)
95.83%
23 / 24
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
ProcessLog
95.83% covered (success)
95.83%
23 / 24
0.00% covered (danger)
0.00%
0 / 1
3
0.00% covered (danger)
0.00%
0 / 1
 readResponse
95.83% covered (success)
95.83%
23 / 24
0.00% covered (danger)
0.00%
0 / 1
3
1<?php
2
3/**
4 * @package ZMS API
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsapi;
9
10use BO\Slim\Render;
11use BO\Mellon\Validator;
12use BO\Zmsdb\Log as Query;
13use DateTime;
14
15class ProcessLog extends BaseController
16{
17    /**
18     * @SuppressWarnings(Param)
19     * @return \Psr\Http\Message\ResponseInterface
20     */
21    #[\Override]
22    public function readResponse(
23        \Psr\Http\Message\RequestInterface $request,
24        \Psr\Http\Message\ResponseInterface $response,
25        array $args
26    ) {
27        (new Helper\User($request))->checkPermissions('logs');
28        $searchQuery = Validator::param('searchQuery')->isString()->setDefault(null)->getValue();
29        $service = Validator::param('service')->isString()->setDefault(null)->getValue();
30        $provider = Validator::param('provider')->isString()->setDefault(null)->getValue();
31        $date = Validator::param('date')->isString()->setDefault(null)->getValue();
32        $userAction = Validator::param('userAction')->isNumber()->setDefault(0)->getValue();
33        $page = Validator::param('page')->isNumber()->setDefault(1)->getValue();
34        $perPage = Validator::param('perPage')->isNumber()->setDefault(100)->getValue();
35        if ($perPage > 1000) {
36            $perPage = 1000;
37        }
38
39        $logList = (new Query())->readByProcessData(
40            urldecode($searchQuery),
41            $service,
42            $provider,
43            $date ? new DateTime($date) : null,
44            $userAction,
45            $page,
46            $perPage
47        );
48
49        $message = Response\Message::create($request);
50        $message->data = $logList;
51
52        $response = Render::withLastModified($response, time(), '0');
53        $response = Render::withJson($response, $message, 200);
54        return $response;
55    }
56}