Skip to content

Commit

Permalink
Add deleteByMethod
Browse files Browse the repository at this point in the history
  • Loading branch information
thomasbeaujean committed May 30, 2024
1 parent 250be5f commit 9f9548a
Show file tree
Hide file tree
Showing 5 changed files with 106 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/Resources/views/Generator/AssociationTemplate.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -128,3 +128,13 @@

return static::getQueryBuilderSingleResult($qb);
}

public function deleteBy{{ column }}(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterBy{{ column }}($qb, $value);

static::getQueryBuilderResult($qb);
}
10 changes: 10 additions & 0 deletions src/Resources/views/Generator/ColumnTemplate.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,13 @@
qb: $qb,
);
}

public function deleteBy{{ column }}(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterBy{{ column }}($qb, $value);

static::getQueryBuilderResult($qb);
}
40 changes: 40 additions & 0 deletions tests/Repository/MyClassRepositoryBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,16 @@ public function existsById(
);
}

public function deleteById(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterById($qb, $value);

static::getQueryBuilderResult($qb);
}

public static function filterByNumber(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'number'): QueryBuilder
{
if ($value === null) {
Expand Down Expand Up @@ -339,6 +349,16 @@ public function existsByNumber(
);
}

public function deleteByNumber(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterByNumber($qb, $value);

static::getQueryBuilderResult($qb);
}

public static function filterByName(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'name'): QueryBuilder
{
if ($value === null) {
Expand Down Expand Up @@ -423,6 +443,16 @@ public function existsByName(
);
}

public function deleteByName(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterByName($qb, $value);

static::getQueryBuilderResult($qb);
}

public static function filterByForeignClasses(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'foreignClasses'): QueryBuilder
{
//get a uniq index
Expand Down Expand Up @@ -547,4 +577,14 @@ public function findOneByForeignClasses(

return static::getQueryBuilderSingleResult($qb);
}

public function deleteByForeignClasses(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterByForeignClasses($qb, $value);

static::getQueryBuilderResult($qb);
}
}
40 changes: 40 additions & 0 deletions tests/Service/ExpectedMyClassRepositoryBase.txt
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,16 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S
);
}

public function deleteById(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterById($qb, $value);

static::getQueryBuilderResult($qb);
}

public static function filterByNumber(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'number'): QueryBuilder
{
if ($value === null) {
Expand Down Expand Up @@ -339,6 +349,16 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S
);
}

public function deleteByNumber(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterByNumber($qb, $value);

static::getQueryBuilderResult($qb);
}

public static function filterByName(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'name'): QueryBuilder
{
if ($value === null) {
Expand Down Expand Up @@ -423,6 +443,16 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S
);
}

public function deleteByName(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterByName($qb, $value);

static::getQueryBuilderResult($qb);
}

public static function filterByForeignClasses(QueryBuilder $qb, $value, $operator = Comparison::EQ, $entityName = 'myClass', $columnName = 'foreignClasses'): QueryBuilder
{
//get a uniq index
Expand Down Expand Up @@ -547,4 +577,14 @@ class MyClassRepositoryBase extends \Doctrine\Bundle\DoctrineBundle\Repository\S

return static::getQueryBuilderSingleResult($qb);
}

public function deleteByForeignClasses(
mixed $value,
): void
{
$qb = $this->getDeleteQueryBuilder();
static::filterByForeignClasses($qb, $value);

static::getQueryBuilderResult($qb);
}
}
7 changes: 6 additions & 1 deletion tests/Service/RepositoryGeneratorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,13 @@ public function testGenerateFiles(): void
$service = $container->get('tbn_qbrg.generator.repository_generator');
$service->generateFiles();

$expectedContent = \file_get_contents(__DIR__.'/ExpectedMyClassRepositoryBase.txt');
$content = \file_get_contents(__DIR__.'/../Repository/MyClassRepositoryBase.php');

// keep for dev update
// \file_put_contents(__DIR__.'/ExpectedMyClassRepositoryBase.txt', $content);

$expectedContent = \file_get_contents(__DIR__.'/ExpectedMyClassRepositoryBase.txt');

$this->assertSame($expectedContent, $content);
}
}

0 comments on commit 9f9548a

Please sign in to comment.