Skip to content

Commit 38dadfa

Browse files
author
Nil Portugues Caldero
committed
ReadRepository with counts and exists
1 parent fc40d51 commit 38dadfa

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/Infrastructure/Model/Repository/Eloquent/EloquentReadRepository.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use NilPortugues\Foundation\Domain\Model\Repository\Contracts\Identity;
88
use NilPortugues\Foundation\Domain\Model\Repository\Contracts\ReadRepository;
99
use NilPortugues\Foundation\Domain\Model\Repository\Contracts\Sort;
10+
use NilPortugues\Foundation\Domain\Model\Repository\Filter as DomainFilter;
1011

1112
class EloquentReadRepository extends BaseEloquentRepository implements ReadRepository
1213
{
@@ -88,7 +89,14 @@ public function findByDistinct(Fields $distinctFields, Filter $filter = null, So
8889
*/
8990
public function count(Filter $filter = null)
9091
{
91-
// TODO: Implement count() method.
92+
$model = self::$instance;
93+
$query = $model->query();
94+
95+
if ($filter) {
96+
EloquentFilter::filter($query, $filter);
97+
}
98+
99+
return (int) $query->getQuery()->count();
92100
}
93101

94102
/**
@@ -100,6 +108,11 @@ public function count(Filter $filter = null)
100108
*/
101109
public function exists(Identity $id)
102110
{
103-
// TODO: Implement exists() method.
111+
$model = self::$instance;
112+
113+
$filter = new DomainFilter();
114+
$filter->must()->equal($model->getKeyName(), $id->id());
115+
116+
return $this->count($filter) > 0;
104117
}
105118
}

0 commit comments

Comments
 (0)