Passed
Push — develop ( 6f3ffa...e1a061 )
by Paul
14:04
created

SummaryParameters::parameters()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 105
Code Lines 81

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 81
c 0
b 0
f 0
dl 0
loc 105
ccs 0
cts 104
cp 0
rs 8.4145
cc 1
nc 1
nop 0
crap 2

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace GeminiLabs\SiteReviews\Controllers\Api\Version1\Parameters;
4
5
use GeminiLabs\SiteReviews\Modules\Rating;
6
7
class SummaryParameters
8
{
9
    public function parameters()
10
    {
11
        $parameters = [
12
            'after' => [
13
                'description' => _x('Limit result set to reviews published after a given ISO8601 compliant date.', 'admin-text', 'site-reviews'),
14
                'format' => 'date-time',
15
                'type' => 'string',
16
            ],
17
            'assigned_posts' => [
18
                'default' => [],
19
                'description' => _x('Limit result set to reviews assigned to specific posts of any public post type.', 'admin-text', 'site-reviews'),
20
                'items' => [
21
                    'type' => ['integer', 'string'],
22
                ],
23
                'type' => 'array',
24
            ],
25
            'assigned_terms' => [
26
                'default' => [],
27
                'description' => sprintf(_x('Limit result set to reviews assigned to specific terms in the %s taxonomy.', 'admin-text', 'site-reviews'), glsr()->taxonomy),
28
                'items' => [
29
                    'type' => ['integer', 'string'],
30
                ],
31
                'type' => 'array',
32
            ],
33
            'assigned_users' => [
34
                'default' => [],
35
                'description' => _x('Limit result set to reviews assigned to specific users.', 'admin-text', 'site-reviews'),
36
                'items' => [
37
                    'type' => ['integer', 'string'],
38
                ],
39
                'type' => 'array',
40
            ],
41
            'before' => [
42
                'description' => _x('Limit result set to reviews published before a given ISO8601 compliant date.', 'admin-text', 'site-reviews'),
43
                'format' => 'date-time',
44
                'type' => 'string',
45
            ],
46
            'date' => [
47
                'description' => _x('Limit result set to reviews published on a given ISO8601 compliant date.', 'admin-text', 'site-reviews'),
48
                'format' => 'date-time',
49
                'type' => 'string',
50
            ],
51
            'email' => [
52
                'description' => _x('Limit result set to reviews containing a given email address.', 'admin-text', 'site-reviews'),
53
                'format' => 'email',
54
                'type' => 'string',
55
            ],
56
            'exclude' => [
57
                'default' => [],
58
                'description' => _x('Ensure result set excludes specific review IDs.', 'admin-text', 'site-reviews'),
59
                'items' => ['type' => 'integer'],
60
                'type' => 'array',
61
            ],
62
            'include' => [
63
                'default' => [],
64
                'description' => _x('Limit result set to specific review IDs.', 'admin-text', 'site-reviews'),
65
                'items' => ['type' => 'integer'],
66
                'type' => 'array',
67
            ],
68
            'ip_address' => [
69
                'description' => _x('Limit result set to reviews submitted from a given IP address.', 'admin-text', 'site-reviews'),
70
                'format' => 'ip',
71
                'type' => 'string',
72
            ],
73
            'rating' => [
74
                'description' => _x('Limit result set to reviews containing a given minimum rating.', 'admin-text', 'site-reviews'),
75
                'maximum' => Rating::max(),
76
                'minimum' => Rating::min(),
77
                'sanitize_callback' => 'absint',
78
                'type' => 'integer',
79
            ],
80
            'status' => [
81
                'description' => _x('Limit result set to reviews containing a given status.', 'admin-text', 'site-reviews'),
82
                'enum' => ['all', 'approved', 'pending', 'publish', 'unapproved'],
83
                'type' => 'string',
84
            ],
85
            'terms' => [
86
                'description' => _x('Limit result set to reviews submitted with terms accepted.', 'admin-text', 'site-reviews'),
87
                'type' => 'boolean',
88
            ],
89
            'type' => [
90
                'description' => _x('Limit result set to reviews containing a given review type.', 'admin-text', 'site-reviews'),
91
                'enum' => glsr()->retrieveAs('array', 'review_types', []),
92
                'type' => 'string',
93
            ],
94
            'user__in' => [
95
                'default' => [],
96
                'description' => _x('Limit result set to reviews authored by specific users.', 'admin-text', 'site-reviews'),
97
                'items' => [
98
                    'type' => ['integer', 'string'],
99
                ],
100
                'type' => 'array',
101
            ],
102
            'user__not_in' => [
103
                'default' => [],
104
                'description' => _x('Ensure result set excludes reviews authored by specific users.', 'admin-text', 'site-reviews'),
105
                'items' => [
106
                    'type' => ['integer', 'string'],
107
                ],
108
                'type' => 'array',
109
            ],
110
        ];
111
        $parameters = glsr()->filterArray('rest-api/summary/parameters', $parameters);
112
        ksort($parameters);
113
        return $parameters;
114
    }
115
}
116