Passed
Push — master ( 3896ee...e50616 )
by Raffael
05:45
created

Validator::validate()   A

Complexity

Conditions 6
Paths 3

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 42

Importance

Changes 0
Metric Value
dl 0
loc 12
ccs 0
cts 10
cp 0
rs 9.2222
c 0
b 0
f 0
cc 6
nc 3
nop 1
crap 42
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * tubee.io
7
 *
8
 * @copyright   Copryright (c) 2017-2019 gyselroth GmbH (https://gyselroth.com)
9
 * @license     GPL-3.0 https://opensource.org/licenses/GPL-3.0
10
 */
11
12
namespace Tubee\Endpoint;
13
14
use InvalidArgumentException;
15
16
class Validator
17
{
18
    /**
19
     * Validate resource.
20
     */
21
    public static function validate(array $resource): array
22
    {
23
        if ($resource['data']['type'] === EndpointInterface::TYPE_SOURCE && (!is_array($resource['data']['options']['import']) || count($resource['data']['options']['import']) === 0)) {
24
            throw new InvalidArgumentException('source endpoint must include at least one options.import attribute');
25
        }
26
27
        if ($resource['data']['type'] === EndpointInterface::TYPE_DESTINATION && !isset($resource['data']['options']['filter_one'])) {
28
            throw new InvalidArgumentException('destintation endpoint must have single object filter options.filter_one as a string');
29
        }
30
31
        return $resource;
32
    }
33
}
34