getOrCreateByAmbassadorAndUser()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 17
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 17
ccs 7
cts 7
cp 1
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 12
nc 2
nop 4
crap 2
1
<?php
2
3
namespace AppBundle\Entity\Infrasctucture;
4
5
use AppBundle\Entity\Band;
6
use AppBundle\Entity\BandMember;
7
use AppBundle\Entity\User;
8
9
/**
10
 * @author Vehsamrak
11
 */
12
class AmbassadorMemberRepository extends AbstractRepository
13
{
14
15
    /**
16
     * @param Ambassador $ambassador
17
     * @param User $user
18
     * @return AmbassadorMember|object|null
19
     */
20 8
    public function findByAmbassadorAndUser(Ambassador $ambassador, User $user)
21
    {
22 8
        return $this->findOneBy(
23
            [
24 8
                'ambassador' => $ambassador,
25 8
                'user'       => $user,
26
            ]
27
        );
28
    }
29
30 6
    public function getOrCreateByAmbassadorAndUser(
31
        Ambassador $ambassador,
32
        User $user,
33
        string $shortDescription = '',
34
        string $description = null
35
    ): AmbassadorMember
36
    {
37 6
        $ambassadorMember = $this->findByAmbassadorAndUser($ambassador, $user);
38
39 6
        if (!$ambassadorMember) {
40 6
            $ambassadorClass = $ambassador->getMemberClass();
41 6
            $ambassadorMember = new $ambassadorClass($ambassador, $user, $shortDescription, $description);
42 6
            $this->persist($ambassadorMember);
43
        }
44
45 6
        return $ambassadorMember;
46
    }
47
}
48