DoctrineAddressChangeRepository   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
eloc 14
dl 0
loc 29
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getAddressChangeByUuid() 0 2 1
A __construct() 0 2 1
A getAddressChangeByUuids() 0 12 1
A storeAddressChange() 0 3 1
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\Fundraising\AddressChangeContext\DataAccess;
6
7
use Doctrine\ORM\EntityManager;
8
use WMDE\Fundraising\AddressChangeContext\Domain\AddressChangeRepository;
9
use WMDE\Fundraising\AddressChangeContext\Domain\Model\AddressChange;
10
11
class DoctrineAddressChangeRepository implements AddressChangeRepository {
12
13
	private EntityManager $entityManager;
14
15 10
	public function __construct( EntityManager $entityManager ) {
16 10
		$this->entityManager = $entityManager;
17
	}
18
19 7
	public function getAddressChangeByUuid( string $uuid ): ?AddressChange {
20 7
		return $this->entityManager->getRepository( AddressChange::class )->findOneBy( [ 'identifier.identifier' => $uuid ] );
21
	}
22
23 3
	public function getAddressChangeByUuids( string $currentIdentifier, string $previousIdentifier ): ?AddressChange {
24
		/**
25
		 * @var AddressChange $result
26
		 */
27 3
		$result = $this->entityManager->getRepository( AddressChange::class )->createQueryBuilder( 'ac' )
28 3
			->where( 'ac.identifier.identifier = :currentIdentifier' )
29 3
			->orWhere( 'ac.previousIdentifier.identifier = :previousIdentifier' )
30 3
			->setParameter( 'currentIdentifier', $currentIdentifier )
31 3
			->setParameter( 'previousIdentifier', $previousIdentifier )
32 3
			->getQuery()
33 3
			->getOneOrNullResult();
34 3
		return $result;
35
	}
36
37 6
	public function storeAddressChange( AddressChange $addressChange ): void {
38 6
		$this->entityManager->persist( $addressChange );
39 6
		$this->entityManager->flush();
40
	}
41
}
42