Passed
Push — master ( 21a45d...334091 )
by Petr
03:48
created

findByAmbassadorAndUser()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 4
cts 4
cp 1
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 4
nc 1
nop 2
crap 1
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 6
    public function findByAmbassadorAndUser(Ambassador $ambassador, User $user)
21
    {
22 6
        return $this->findOneBy(
23
            [
24 6
                'ambassador' => $ambassador,
25 6
                'user'       => $user,
26
            ]
27
        );
28
    }
29
30 4
    public function getOrCreateByAmbassadorAndUser(
31
        Ambassador $ambassador,
32
        User $user,
33
        string $shortDescription = '',
34
        string $description = null
35
    ): AmbassadorMember
36
    {
37 4
        $ambassadorMember = $this->findByAmbassadorAndUser($ambassador, $user);
38
39 4
        if (!$ambassadorMember) {
40 4
            $ambassadorClass = $ambassador->getMemberClass();
41 4
            $ambassadorMember = new $ambassadorClass($ambassador, $user, $shortDescription, $description);
42 4
            $this->persist($ambassadorMember);
43
        }
44
45 4
        return $ambassadorMember;
46
    }
47
}
48