RelationshipFactory::setData()   A
last analyzed

Complexity

Conditions 4
Paths 5

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 4

Importance

Changes 0
Metric Value
cc 4
eloc 6
c 0
b 0
f 0
nc 5
nop 2
dl 0
loc 12
ccs 7
cts 7
cp 1
crap 4
rs 10
1
<?php
2
3
namespace VGirol\JsonApiFaker\Laravel\Factory;
4
5
use Illuminate\Database\Eloquent\Model;
6
use Illuminate\Support\Collection;
7
use VGirol\JsonApiFaker\Exception\JsonApiFakerException;
8
use VGirol\JsonApiFaker\Factory\RelationshipFactory as BaseFactory;
9
use VGirol\JsonApiFaker\Laravel\Contract\CollectionContract;
10
use VGirol\JsonApiFaker\Laravel\Contract\GeneratorContract;
11
use VGirol\JsonApiFaker\Laravel\Contract\ResourceIdentifierContract;
12
13
/**
14
 * A factory for "relationship" object
15
 */
16
class RelationshipFactory extends BaseFactory
17
{
18
    /**
19
     * The factory generator
20
     *
21
     * @var GeneratorContract
22
     */
23
    protected $generator;
24
25
    /**
26
     * @param ResourceIdentifierContract|CollectionContract|Model|Collection|null $data
27
     * @param string|null                                                         $resourceType
28
     *
29
     * @return static
30
     * @throws JsonApiFakerException
31
     */
32 21
    public function setData($data, string $resourceType = null)
33
    {
34 21
        if ($data !== null) {
35 21
            if (is_a($data, Model::class)) {
36 3
                $data = $this->generator->resourceIdentifier($data, $resourceType);
37
            }
38 21
            if (is_a($data, Collection::class)) {
39 15
                $data = $this->generator->riCollection($data, $resourceType);
40
            }
41
        }
42
43 21
        return parent::setData($data);
44
    }
45
}
46