Skip to content

Commit 513841c

Browse files
author
David GABISON
committed
refactor: factorize where conditions : search
1 parent 1189791 commit 513841c

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

Diff for: src/Donations/Endpoints/ListDonations.php

+19-15
Original file line numberDiff line numberDiff line change
@@ -249,28 +249,32 @@ public function getTotalDonationsCount(): int
249249
*/
250250
protected function getWhereConditions(QueryBuilder $query): array
251251
{
252-
$search = $this->request->get_param('search');
253252
$dependencies = [];
253+
list($query, $dependencies) = $this->getSearchWhereCondition($query, $dependencies);
254254
list($query, $dependencies) = $this->getDonorWhereCondition($query, $dependencies);
255255
list($query, $dependencies) = $this->getFormWhereCondition($query, $dependencies);
256256
list($query, $dependencies) = $this->getDateWhereCondition($query, $dependencies);
257257
list($query, $dependencies) = $this->getModeWhereCondition($query, $dependencies);
258258

259+
return [$query, $dependencies];
260+
}
259261

260-
if ($search) {
261-
if (ctype_digit($search)) {
262-
$query->where('id', $search);
263-
} elseif (strpos($search, '@') !== false) {
264-
$query
265-
->whereLike('give_donationmeta_attach_meta_email.meta_value', $search);
266-
$dependencies[] = DonationMetaKeys::EMAIL();
267-
} else {
268-
$query
269-
->whereLike('give_donationmeta_attach_meta_firstName.meta_value', $search)
270-
->orWhereLike('give_donationmeta_attach_meta_lastName.meta_value', $search);
271-
$dependencies[] = DonationMetaKeys::FIRST_NAME();
272-
$dependencies[] = DonationMetaKeys::LAST_NAME();
273-
}
262+
private function getSearchWhereCondition (QueryBuilder $query, array $dependencies)
263+
{
264+
$search = $this->request->get_param('search');
265+
if (!$search) return [$query, $dependencies];
266+
if (ctype_digit($search)) {
267+
$query->where('id', $search);
268+
} elseif (strpos($search, '@') !== false) {
269+
$query
270+
->whereLike('give_donationmeta_attach_meta_email.meta_value', $search);
271+
$dependencies[] = DonationMetaKeys::EMAIL();
272+
} else {
273+
$query
274+
->whereLike('give_donationmeta_attach_meta_firstName.meta_value', $search)
275+
->orWhereLike('give_donationmeta_attach_meta_lastName.meta_value', $search);
276+
$dependencies[] = DonationMetaKeys::FIRST_NAME();
277+
$dependencies[] = DonationMetaKeys::LAST_NAME();
274278
}
275279
return [$query, $dependencies];
276280
}

0 commit comments

Comments
 (0)