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

getAddressChangeByUuids()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 2
dl 0
loc 13
ccs 4
cts 4
cp 1
crap 1
rs 9.9666
c 0
b 0
f 0
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