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 String
20     */
21    public function readResponse(
22        \Psr\Http\Message\RequestInterface $request,
23        \Psr\Http\Message\ResponseInterface $response,
24        array $args
25    ) {
26        (new Helper\User($request))->checkRights('audit');
27        $searchQuery = Validator::param('searchQuery')->isString()->setDefault(null)->getValue();
28        $service = Validator::param('service')->isString()->setDefault(null)->getValue();
29        $provider = Validator::param('provider')->isString()->setDefault(null)->getValue();
30        $date = Validator::param('date')->isString()->setDefault(null)->getValue();
31        $userAction = Validator::param('userAction')->isNumber()->setDefault(0)->getValue();
32        $page = Validator::param('page')->isNumber()->setDefault(1)->getValue();
33        $perPage = Validator::param('perPage')->isNumber()->setDefault(100)->getValue();
34        if ($perPage > 1000) {
35            $perPage = 1000;
36        }
37
38        $logList = (new Query())->readByProcessData(
39            urldecode($searchQuery),
40            $service,
41            $provider,
42            $date ? new DateTime($date) : null,
43            $userAction,
44            $page,
45            $perPage
46        );
47
48        $message = Response\Message::create($request);
49        $message->data = $logList;
50
51        $response = Render::withLastModified($response, time(), '0');
52        $response = Render::withJson($response, $message, 200);
53        return $response;
54    }
55}