From f39e34857fa96654a1e05120efde5a55779a4d30 Mon Sep 17 00:00:00 2001 From: Thomas Beaujean Date: Thu, 18 Apr 2024 11:21:14 +0200 Subject: [PATCH] Generate existsByXXXXX --- .../views/Generator/ColumnTemplate.html.twig | 11 +++++++ tests/Repository/MyClassRepositoryBase.php | 33 +++++++++++++++++++ .../Service/ExpectedMyClassRepositoryBase.txt | 33 +++++++++++++++++++ 3 files changed, 77 insertions(+) diff --git a/src/Resources/views/Generator/ColumnTemplate.html.twig b/src/Resources/views/Generator/ColumnTemplate.html.twig index e2ab8f1..d577a88 100644 --- a/src/Resources/views/Generator/ColumnTemplate.html.twig +++ b/src/Resources/views/Generator/ColumnTemplate.html.twig @@ -71,3 +71,14 @@ return static::getQueryBuilderSingleResult($qb); } + + public function existsBy{{ column }}( + mixed $value, + ): bool { + $qb = $this->getNewQueryBuilder(); + static::filterBy{{ column }}($qb, $value); + + return static::existsByQueryBuilder( + qb: $qb, + ); + } diff --git a/tests/Repository/MyClassRepositoryBase.php b/tests/Repository/MyClassRepositoryBase.php index 1b7ff8d..f874f42 100644 --- a/tests/Repository/MyClassRepositoryBase.php +++ b/tests/Repository/MyClassRepositoryBase.php @@ -244,6 +244,17 @@ public function findOneById( return static::getQueryBuilderSingleResult($qb); } + public function existsById( + mixed $value, + ): bool { + $qb = $this->getNewQueryBuilder(); + static::filterById($qb, $value); + + return static::existsByQueryBuilder( + qb: $qb, + ); + } + public static function filterByNumber(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'number'): QueryBuilder { if ($value === null) { @@ -317,6 +328,17 @@ public function findOneByNumber( return static::getQueryBuilderSingleResult($qb); } + public function existsByNumber( + mixed $value, + ): bool { + $qb = $this->getNewQueryBuilder(); + static::filterByNumber($qb, $value); + + return static::existsByQueryBuilder( + qb: $qb, + ); + } + public static function filterByName(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'name'): QueryBuilder { if ($value === null) { @@ -390,6 +412,17 @@ public function findOneByName( return static::getQueryBuilderSingleResult($qb); } + public function existsByName( + mixed $value, + ): bool { + $qb = $this->getNewQueryBuilder(); + static::filterByName($qb, $value); + + return static::existsByQueryBuilder( + qb: $qb, + ); + } + public static function filterByForeignClasses(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'foreignClasses'): QueryBuilder { //get a uniq index diff --git a/tests/Service/ExpectedMyClassRepositoryBase.txt b/tests/Service/ExpectedMyClassRepositoryBase.txt index 1b7ff8d..f874f42 100644 --- a/tests/Service/ExpectedMyClassRepositoryBase.txt +++ b/tests/Service/ExpectedMyClassRepositoryBase.txt @@ -244,6 +244,17 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S return static::getQueryBuilderSingleResult($qb); } + public function existsById( + mixed $value, + ): bool { + $qb = $this->getNewQueryBuilder(); + static::filterById($qb, $value); + + return static::existsByQueryBuilder( + qb: $qb, + ); + } + public static function filterByNumber(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'number'): QueryBuilder { if ($value === null) { @@ -317,6 +328,17 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S return static::getQueryBuilderSingleResult($qb); } + public function existsByNumber( + mixed $value, + ): bool { + $qb = $this->getNewQueryBuilder(); + static::filterByNumber($qb, $value); + + return static::existsByQueryBuilder( + qb: $qb, + ); + } + public static function filterByName(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'name'): QueryBuilder { if ($value === null) { @@ -390,6 +412,17 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S return static::getQueryBuilderSingleResult($qb); } + public function existsByName( + mixed $value, + ): bool { + $qb = $this->getNewQueryBuilder(); + static::filterByName($qb, $value); + + return static::existsByQueryBuilder( + qb: $qb, + ); + } + public static function filterByForeignClasses(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'foreignClasses'): QueryBuilder { //get a uniq index