Completed
Pull Request — master (#2)
by
unknown
04:30
created

ActivityLogController::getFieldsAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 12
ccs 0
cts 6
cp 0
rs 9.4285
cc 1
eloc 6
nc 1
nop 1
crap 2
1
<?php
2
3
/*
4
 * This file is part of Sulu.
5
 *
6
 * (c) MASSIVE ART WebServices GmbH
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace Sulu\Bundle\ActivityLogBundle\Controller;
13
14
use FOS\RestBundle\Controller\Annotations\Get;
15
use FOS\RestBundle\Controller\FOSRestController;
16
use FOS\RestBundle\Routing\ClassResourceInterface;
17
use Sulu\Component\ActivityLog\ActivityLogger;
18
use Sulu\Component\Rest\Exception\EntityNotFoundException;
19
use Sulu\Component\Rest\ListBuilder\FieldDescriptor;
20
use Sulu\Component\Rest\ListBuilder\ListRepresentation;
21
use Symfony\Component\HttpFoundation\Request;
22
23
/**
24
 * Makes activity logs available through a REST API.
25
 */
26
class ActivityLogController extends FOSRestController implements ClassResourceInterface
27
{
28
    const EXPORT_COLUMN_DELIMITER = ';';
29
    const EXPORT_FILENAME = 'activity-log-export';
30
31
    /**
32
     * Returns all fields that can be used by list.
33
     *
34
     * @Get("activity-log/fields")
35
     *
36
     * @param Request $request
37
     *
38
     * @return mixed
39
     */
40
    public function getFieldsAction(Request $request)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
41
    {
42
        // default contacts list
43
        return $this->handleView(
44
            $this->view(
0 ignored issues
show
Documentation introduced by
$this->view(array_values...eldDescriptors()), 200) is of type this<Sulu\Bundle\Activit...\ActivityLogController>, but the function expects a object<FOS\RestBundle\View\View>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
45
                array_values(
46
                    $this->getFieldDescriptors()
47
                ),
48
                200
49
            )
50
        );
51
    }
52
53
    /**
54
     * Shows all activity-log-items.
55
     *
56
     * @param Request $request
57
     *
58
     * @Get("activity-log")
59
     *
60
     * @return \Symfony\Component\HttpFoundation\Response
61
     */
62 5
    public function cgetAction(Request $request)
63
    {
64 5
        $list = $this->getActivityLogs($request);
65
66 5
        $view = $this->view($list, 200);
67
68 5
        return $this->handleView($view);
0 ignored issues
show
Documentation introduced by
$view is of type this<Sulu\Bundle\Activit...\ActivityLogController>, but the function expects a object<FOS\RestBundle\View\View>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
69
    }
70
71
    /**
72
     * Create field-descriptor array.
73
     *
74
     * @return FieldDescriptor[]
75
     */
76
    protected function getFieldDescriptors()
77
    {
78
        return [
79
            'uuid' => new FieldDescriptor('id', 'public.id', true, false),
80
            'data' => new FieldDescriptor('data', 'public.data', false, true),
81
        ];
82
    }
83
84
    /**
85
     * returns view of files.
86
     *
87
     * @param Request $request
88
     *
89
     * @throws EntityNotFoundException
90
     *
91
     * @return ListRepresentation
92
     */
93 5
    protected function getActivityLogs(Request $request)
94
    {
95 5
        $restHelper = $this->get('sulu_core.list_rest_helper');
96
97
        /** @var ActivityLogger $activityLogger */
98 5
        $activityLogger = $this->get('sulu_activity_log.activity_logger');
99
100 5
        $page = (int) $restHelper->getPage();
101 5
        $limit = (int) $restHelper->getLimit();
102 5
        $sortColumn = $restHelper->getSortColumn();
103 5
        $sortOrder = $restHelper->getSortOrder();
104 5
        $searchPattern = $restHelper->getSearchPattern();
105 5
        $searchFields = $restHelper->getSearchFields();
106
107 5
        $list = $activityLogger->findAllWithSearch(
108
            $searchPattern,
109
            $searchFields,
110
            $page,
111
            $limit,
112
            $sortColumn,
113 5
            $sortOrder
114
        );
115
116 5
        $total = $activityLogger->getCountForAllWithSearch($searchPattern, $searchFields);
117
118 5
        $list = array_values($list);
119
120 5
        $list = new ListRepresentation(
121
            $list,
122 5
            'activity-log-items',
123 5
            'get_activity_logs',
124 5
            $request->query->all(),
125
            $page,
126
            $limit,
127 5
            $total
128
        );
129
130 5
        return $list;
131
    }
132
}
133