Test Failed
Push — develop ( 8fa5d6...c76118 )
by Paul
07:13
created

ShortcodeApiFetchDefaults::finalize()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 7
rs 10
cc 2
nc 2
nop 1
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Defaults;
4
5
use GeminiLabs\SiteReviews\Helpers\Arr;
6
7
class ShortcodeApiFetchDefaults extends DefaultsAbstract
8
{
9
    /**
10
     * The values that should be cast before sanitization is run.
11
     * This is done before $sanitize and $enums.
12
     */
13
    public array $casts = [
14
        'include' => 'array',
15
    ];
16
17
    /**
18
     * The values that should be sanitized.
19
     * This is done after $casts and before $enums.
20
     */
21
    public array $sanitize = [
22
        'include' => 'array-int',
23
        'option' => 'name',
24
        'search' => 'text',
25
        'shortcode' => 'name',
26
    ];
27
28
    protected function defaults(): array
29
    {
30
        return [
31
            'include' => '',
32
            'option' => '',
33
            'search' => '',
34
            'shortcode' => '',
35
        ];
36
    }
37
38
    /**
39
     * Finalize provided values, this always runs last.
40
     */
41
    protected function finalize(array $values = []): array
42
    {
43
        if (is_numeric($values['search'])) {
44
            $values['include'][] = (int) $values['search'];
45
            $values['include'] = Arr::uniqueInt($values['include']);
46
        }
47
        return $values;
48
    }
49
}
50