Skip to content

Commit 91b103d

Browse files
authored
Merge pull request #116 from TomHAnderson/hotfix/filters-input-type2
Refactor FiltersInputType so simplify
2 parents 4776ebb + 1bb8695 commit 91b103d

1 file changed

Lines changed: 19 additions & 37 deletions

File tree

src/Criteria/Type/FiltersInputType.php

Lines changed: 19 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,59 +17,41 @@ public function __construct(string $typeName, string $fieldName, Type $type, arr
1717
$descriptions = FiltersDef::getDescriptions();
1818

1919
foreach ($allowedFilters as $filter) {
20+
$filterType = $type;
21+
2022
switch ($filter) {
2123
case FiltersDef::SORT:
22-
$fields[$filter] = [
23-
'name' => $filter,
24-
'type' => Type::string(),
25-
'description' => $descriptions[$filter],
26-
];
24+
$filterType = Type::string();
2725
break;
28-
2926
case FiltersDef::ISNULL:
30-
$fields[$filter] = [
31-
'name' => $filter,
32-
'type' => Type::boolean(),
33-
'description' => $descriptions[$filter],
34-
];
27+
$filterType = Type::boolean();
3528
break;
36-
3729
case FiltersDef::BETWEEN:
38-
$fields[$filter] = [
39-
'name' => $filter,
40-
41-
'type' => $this->buildBetweenInputObject(
42-
$typeName,
43-
$fieldName,
44-
$type,
45-
),
46-
'description' => $descriptions[$filter],
47-
];
30+
$filterType = $this->buildBetweenInputObject(
31+
$typeName,
32+
$fieldName,
33+
$type,
34+
);
4835
break;
49-
5036
case FiltersDef::IN:
5137
case FiltersDef::NOTIN:
52-
$fields[$filter] = [
53-
'name' => $filter,
54-
'type' => Type::listOf($type),
55-
'description' => $descriptions[$filter],
56-
];
38+
$filterType = Type::listOf($type);
5739
break;
58-
5940
case FiltersDef::STARTSWITH:
6041
case FiltersDef::ENDSWITH:
6142
case FiltersDef::CONTAINS:
6243
if ($type !== Type::string() && $type !== Type::id()) {
63-
break;
44+
continue 2;
6445
}
65-
// break intentionally omitted
66-
default:
67-
$fields[$filter] = [
68-
'name' => $filter,
69-
'type' => $type,
70-
'description' => $descriptions[$filter],
71-
];
46+
47+
break;
7248
}
49+
50+
$fields[$filter] = [
51+
'name' => $filter,
52+
'type' => $filterType,
53+
'description' => $descriptions[$filter],
54+
];
7355
}
7456

7557
/** @psalm-suppress InvalidArgument */

0 commit comments

Comments
 (0)