Test Failed
Push — tmp ( 15f615...89cc97 )
by Paul
10:31 queued 04:40
created

RatingManager::flatten()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 16
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 10
c 0
b 0
f 0
nc 3
nop 2
dl 0
loc 16
ccs 0
cts 15
cp 0
crap 12
rs 9.9332
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Database;
4
5
use GeminiLabs\SiteReviews\Helper;
6
use GeminiLabs\SiteReviews\Helpers\Arr;
7
use GeminiLabs\SiteReviews\Modules\Rating;
8
9
class RatingManager
10
{
11
    /**
12
     * @param bool $flatten
13
     * @return array
14
     */
15
    public function ratings(array $args = [])
16
    {
17
        $args = wp_parse_args($args, [
18
            'max' => glsr()->constant('MAX_RATING', Rating::class),
19
            'min' => glsr()->constant('MIN_RATING', Rating::class),
20
        ]);
21
        $ratings = [];
22
        $results = glsr(Query::class)->ratings($args);
23
        array_walk_recursive($results, function ($rating, $index) use (&$ratings) {
24
            $ratings[$index] = $rating + intval(Arr::get($ratings, $index, 0));
25
        });
26
        foreach ($ratings as $index => &$rating) {
27
            if (!Helper::inRange($index, $args['min'], $args['max'])) {
28
                $rating = 0;
29
            }
30
        }
31
        return $ratings;
32
    }
33
}
34