Completed
Pull Request — master (#239)
by Luc
04:44
created

deleteByLabelNameAndRelationId()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 9
nc 1
nop 2
1
<?php
2
3
namespace CultuurNet\UDB3\Label\ReadModels\Relations\Repository\Doctrine;
4
5
use CultuurNet\UDB3\Label\ReadModels\Doctrine\AbstractDBALRepository;
6
use CultuurNet\UDB3\Label\ReadModels\Relations\Repository\WriteRepositoryInterface;
7
use CultuurNet\UDB3\Label\ValueObjects\LabelName;
8
use CultuurNet\UDB3\Label\ValueObjects\RelationType;
9
use ValueObjects\String\String as StringLiteral;
10
11
class DBALWriteRepository extends AbstractDBALRepository implements WriteRepositoryInterface
12
{
13
    /**
14
     * @inheritdoc
15
     */
16
    public function save(
17
        LabelName $labelName,
18
        RelationType $relationType,
19
        StringLiteral $relationId
20
    ) {
21
        $queryBuilder = $this->createQueryBuilder()
22
            ->insert($this->getTableName())
23
            ->values([
24
                SchemaConfigurator::LABEL_NAME => '?',
25
                SchemaConfigurator::RELATION_TYPE => '?',
26
                SchemaConfigurator::RELATION_ID => '?'
27
            ])
28
            ->setParameters([
29
                $labelName->toNative(),
30
                $relationType->toNative(),
31
                $relationId->toNative()
32
            ]);
33
34
        $queryBuilder->execute();
35
    }
36
37
    /**
38
     * @inheritdoc
39
     */
40
    public function deleteByLabelNameAndRelationId(
41
        LabelName $labelName,
42
        StringLiteral $relationId
43
    ) {
44
        $queryBuilder = $this->createQueryBuilder()
45
            ->delete($this->getTableName())
46
            ->where(SchemaConfigurator::LABEL_NAME . ' = ?')
47
            ->andWhere(SchemaConfigurator::RELATION_ID . ' = ?')
48
            ->setParameters([$labelName->toNative(), $relationId->toNative()]);
49
50
        $queryBuilder->execute();
51
    }
52
53
    /**
54
     * @inheritdoc
55
     */
56
    public function deleteByRelationId(StringLiteral $relationId)
57
    {
58
        $queryBuilder = $this->createQueryBuilder()
59
            ->delete($this->getTableName())
60
            ->where(SchemaConfigurator::RELATION_ID . ' = ?')
61
            ->setParameters([$relationId->toNative()]);
62
63
        $queryBuilder->execute();
64
    }
65
}
66