guarded(fn (): array => ['types' => $this->targets->types()]); } public function posts(Request $request): JsonResponse { $search = $request->query('search', ''); $type = $request->query('type', ''); return $this->guarded(fn (): array => ['items' => $this->targets->posts( sanitize_text_field(is_scalar($search) ? (string) $search : ''), 30, sanitize_key(is_scalar($type) ? (string) $type : '') )]); } public function media(Request $request): JsonResponse { return $this->guarded(fn (): array => ['items' => $this->targets->media(sanitize_text_field((string) $request->query('search', '')))]); } /** * @param callable(): array $data */ protected function guarded(callable $data): JsonResponse { if (!$this->extensions->modules()->enabled(StudioRunController::MODULE)) { return $this->error(__('Content Studio is switched off. An administrator can switch it on in Tools → Extensions.', 'maze-graph'), 503); } return $this->ok($data())->header('Cache-Control', 'no-store, private'); } }