Passed
Pull Request — master (#31)
by
unknown
64:24
created

DoctrineAddressChangeRepository   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 30
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getAddressChangeByUuid() 0 2 1
A __construct() 0 2 1
A getAddressChangeByUuids() 0 13 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 7
	public function __construct( EntityManager $entityManager ) {
16 7
		$this->entityManager = $entityManager;
17 7
	}
18
19 7
	public function getAddressChangeByUuid( string $uuid ): ?AddressChange {
20 7
		return $this->entityManager->getRepository( AddressChange::class )->findOneBy( [ 'identifier.identifier' => $uuid ] );
21
	}
22
23 4
	public function getAddressChangeByUuids( string $currentIdentifier, string $previousIdentifier ): ?AddressChange {
24 4
		$query = $this->entityManager->getRepository( AddressChange::class )->createQueryBuilder( 'ac' )
25 4
			->where( 'ac.identifier.identifier = :currentIdentifier' )
26 4
			->orWhere( 'ac.previousIdentifier.identifier = :previousIdentifier' )
27
			->setParameters( [
28
				'currentIdentifier' => $currentIdentifier,
29
				'previousIdentifier' => $previousIdentifier
30
			] )
31
			->getQuery();
32
33
		print_r( $query->getSQL() );
34
35
		return $query->getOneOrNullResult();
36
	}
37
38
	public function storeAddressChange( AddressChange $addressChange ): void {
39
		$this->entityManager->persist( $addressChange );
40
		$this->entityManager->flush();
41
	}
42
}
43