wheres + [ ], fn($i) => ! is_null($i) ) + [ ]; } public function wheresConditions() : iterable { return array_filter($this->wheresConditions + [ ], fn($i) => ! is_null($i) ) + [ ]; } public function wheresOperators() : iterable { return array_filter($this->wheresOperators + [ ], fn($i) => ! is_null($i) ) + [ ]; } public function likes(): iterable { return array_filter($this->likes + [ ], fn($i) => ! is_null($i) ) + []; } public function likesConditions() : iterable { return array_filter($this->likesConditions + [ ], fn($i) => ! is_null($i) ) + [ ]; } public function likesOperators() : iterable { return array_filter($this->likesOperators + [ ], fn($i) => ! is_null($i) ) + [ ]; } public function groups(): iterable { return array_filter($this->groups + [ ], fn($e) => ! is_null($e) && $e !== "" ); } public function orders(): iterable { return array_filter($this->orders + [ ], fn($e) => ! is_null($e) && $e !== "" ); } /* ]] */ public function filter(Repository $repository) : Repository { return $repository; } public function applyCount(Repository\RepositoryInterface $repository): SearchRequestInterface { $this->count = $this->fromParsedParameters($repository) ->filter($repository) ->wheres($this->wheres(), $this->wheresOperators(), $this->wheresConditions()) ->likes($this->likes(), $this->likesConditions()) ->groups($this->groups()) ->count(); return $this; } public function apply(Repository\RepositoryInterface $repository): SearchRequestInterface { $this->fromParsedParameters($repository) ->filter($repository) ->wheres($this->wheres(), $this->wheresOperators(), $this->wheresConditions()) ->likes($this->likes(), $this->likesConditions()) ->orders($this->orders()) ->groups($this->groups()) ->offset($this->offset()) ->limit($this->limit()); return $this; } }