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

AmbassadorMemberRepository   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 2
dl 0
loc 36
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A findByAmbassadorAndUser() 0 9 1
A getOrCreateByAmbassadorAndUser() 0 17 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 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