|
21 | 21 | use Illuminate\Support\Facades\Route; |
22 | 22 | use PKP\core\PKPBaseController; |
23 | 23 | use PKP\core\PKPRequest; |
| 24 | +use Illuminate\Http\Request; |
24 | 25 | use PKP\security\authorization\CanAccessSettingsPolicy; |
25 | 26 | use PKP\security\authorization\ContextAccessPolicy; |
26 | 27 | use PKP\security\Role; |
27 | | -use APP\facades\Repo; |
28 | 28 | use PKP\editorialTask\Template; |
29 | | -use PKP\API\v1\editTaskTemplates\formRequests\ListTaskTemplates; |
30 | 29 | use PKP\API\v1\editTaskTemplates\resources\EditTaskTemplateResource; |
31 | 30 |
|
32 | 31 | class PKPEditTaskTemplateController extends PKPBaseController |
@@ -56,40 +55,38 @@ public function getGroupRoutes(): void |
56 | 55 | Role::ROLE_ID_SITE_ADMIN, |
57 | 56 | ]), |
58 | 57 | ])->group(function () { |
59 | | - Route::get('', $this->index(...)); |
| 58 | + Route::get('', $this->getMany(...)); |
60 | 59 | }); |
61 | 60 | } |
62 | 61 |
|
63 | 62 | /** |
64 | 63 | * GET /api/v1/editTaskTemplates |
65 | 64 | */ |
66 | | - public function index(ListTaskTemplates $illuminateRequest): JsonResponse |
| 65 | + public function getMany(Request $request): JsonResponse |
67 | 66 | { |
68 | 67 | $context = $this->getRequest()->getContext(); |
69 | | - $validated = $illuminateRequest->validated(); |
70 | 68 |
|
71 | 69 | $q = Template::query() |
72 | | - ->where('context_id', $context->getId()) |
| 70 | + ->byContextId((int) $context->getId()) |
73 | 71 | ->with('userGroups'); |
74 | 72 |
|
75 | | - if (isset($validated['stageId'])) { |
76 | | - $q->where('stage_id', (int) $validated['stageId']); |
| 73 | + if ($request->filled('stageId')) { |
| 74 | + $q->where('stage_id', (int) $request->query('stageId')); |
77 | 75 | } |
78 | 76 |
|
79 | | - if (array_key_exists('include', $validated) && $validated['include'] !== null) { |
80 | | - $q->where('include', (bool) $validated['include']); |
| 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); |
| 81 | + } |
81 | 82 | } |
82 | 83 |
|
83 | | - if (!empty($validated['emailTemplateKey'])) { |
84 | | - $et = Repo::emailTemplate()->getByKey($context->getId(), $validated['emailTemplateKey']); |
85 | | - $q->where('email_template_id', $et?->getId() ?? 0); |
| 84 | + if ($request->filled('emailTemplateKey')) { |
| 85 | + $q->where('email_template_key', trim((string) $request->query('emailTemplateKey'))); |
86 | 86 | } |
87 | | - |
88 | | - $items = $q->orderByPkDesc()->get() |
89 | | - ->map(fn ($tpl) => (new EditTaskTemplateResource($tpl))->toArray($illuminateRequest)) |
90 | | - ->values() |
91 | | - ->all(); |
92 | | - |
93 | | - return response()->json(['items' => $items], Response::HTTP_OK); |
94 | | - } |
| 87 | + $collection = $q->orderByPkDesc()->get(); |
| 88 | + return EditTaskTemplateResource::collection($collection) |
| 89 | + ->response() |
| 90 | + ->setStatusCode(Response::HTTP_OK); |
| 91 | + } |
95 | 92 | } |
0 commit comments