Skip to content

Commit 2b71e4c

Browse files
committed
#11833 Refactor GET /editTaskTemplates to use Template scopes and camelCase params
1 parent 3036c1a commit 2b71e4c

File tree

1 file changed

+30
-14
lines changed

1 file changed

+30
-14
lines changed

api/v1/editTaskTemplates/PKPEditTaskTemplateController.php

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,27 +66,43 @@ public function getMany(Request $request): JsonResponse
6666
{
6767
$context = $this->getRequest()->getContext();
6868

69-
$q = Template::query()
70-
->byContextId((int) $context->getId())
69+
// Start with our standard collector/scopes
70+
$collector = Template::byContextId((int) $context->getId())
7171
->with('userGroups');
7272

73-
if ($request->filled('stageId')) {
74-
$q->where('stage_id', (int) $request->query('stageId'));
75-
}
73+
// Apply supported filters from query params via model scopes
74+
foreach ($request->query() as $param => $val) {
75+
switch ($param) {
76+
case 'stageId':
77+
if ($val !== null && $val !== '') {
78+
$collector = $collector->withStageId((int) $val);
79+
}
80+
break;
81+
82+
case 'include':
83+
// Accept "true"/"false", 1/0, etc.
84+
$bool = filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
85+
if ($bool !== null) {
86+
$collector = $collector->withInclude($bool);
87+
}
88+
break;
7689

77-
if ($request->has('include')) {
78-
$include = filter_var($request->query('include'), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
79-
if ($include !== null) {
80-
$q->where('include', $include);
90+
case 'emailTemplateKey':
91+
$key = trim((string) $val);
92+
if ($key !== '') {
93+
$collector = $collector->withEmailTemplateKey($key);
94+
}
95+
break;
96+
97+
// ignore unknown params
8198
}
8299
}
83100

84-
if ($request->filled('emailTemplateKey')) {
85-
$q->where('email_template_key', trim((string) $request->query('emailTemplateKey')));
86-
}
87-
$collection = $q->orderByPkDesc()->get();
101+
$collection = $collector->orderByPkDesc()->get();
102+
88103
return EditTaskTemplateResource::collection($collection)
89104
->response()
90105
->setStatusCode(Response::HTTP_OK);
91-
}
106+
}
107+
92108
}

0 commit comments

Comments
 (0)