- Some work done on correcting LDAP package compatibility

This commit is contained in:
mcndave committed 2021-03-09 15:25:46 +00:00
1 parent 71de0a8ac1
commit e3d0e45a4e
13 files changed
+110 -22

No files matched your search

+17 -5
View File
@@ -31,7 +31,7 @@ class Repository
$this->queryBuilder = new QueryBuilder();
}
public function __clone()
public function __clone()
{
#$this->queryBuilder = clone $this->queryBuilder;
}
@@ -285,6 +285,8 @@ class Repository
$this->select("$alias.$key as {$prependField}{$field['name']}");
}
}
return $this;
}
public function selectJsonEntity(string $entity, string $alias, bool $skipFrom = false) : self
@@ -307,9 +309,9 @@ class Repository
);
}
public function select(/*array|Stringable*/ $fields) : self
public function select(/*array|Stringable*/ $fields, bool $distinct = false) : self
{
$this->queryBuilder->select($fields);
$this->queryBuilder->select($fields, $distinct);
return $this;
}
@@ -616,7 +618,7 @@ class Repository
public function filterServerRequest(SearchRequest\SearchRequestInterface $searchRequest, bool $count = true) : self
{
if ($count) {
$searchRequest->count = $searchRequest->filter(new Repository\ServerRequestCountRepository($this->entityClass, $this->alias, $this->adapter))
$searchRequest->count = $searchRequest->filter($this->serverRequestCountRepository())
->wheres($searchRequest->wheres(), Query\Where::OPERATOR_EQUAL, Query\Where::CONDITION_AND)
->likes($searchRequest->likes(), Query\Where::CONDITION_OR)
->groups($searchRequest->groups())
@@ -632,6 +634,11 @@ class Repository
->limit($searchRequest->limit());
}
protected function serverRequestCountRepository() : Repository
{
return new Repository\ServerRequestCountRepository($this->entityClass, $this->alias, $this->adapter);
}
public function collectionFromQuery(? string $entityClass = null) : EntityCollection
{
$class = $entityClass ?: $this->entityClass;
@@ -646,7 +653,7 @@ class Repository
$entityCollection->append( ( new $class() )->resetVirtualProperties()->entityFillFromDataset($entityData) );
}
$this->eventExecute(Event\RepositoryCollectionFromQueryInterface::class, $entityCollection);
$this->eventExecute(Event\Repository\CollectionFromQueryInterface::class, $entityCollection);
return $entityCollection;
}
@@ -793,6 +800,11 @@ class Repository
return $this->adapter->adapter()->escapeIdentifier($identifier, Adapter\AdapterInterface::IDENTIFIER_SCHEMA);
}
public function hasFilters() : bool
{
return isset($this->queryBuilder->where);
}
protected function matchEntity(object $entity) {
return get_class($entity) === $this->entityClass;
}