playerResponse(); } public function showItem(DisplayVersion $module, DisplayVersionItem $item): BinaryFileResponse { abort_unless($item->display_version_id === $module->id, 404); return $this->playerResponse(); } private function playerResponse(): BinaryFileResponse { return response()->file(public_path('_cabinet/display/index.html'), [ 'Cache-Control' => 'no-cache, must-revalidate', ]); } public function config(DisplayVersion $module, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse { $module->load('items'); if (! $module->is_active) { return response()->json(['error' => 'Module preview not configured'], 404); } return response()->json($configBuilder->fromModules($module->newCollection([$module]))); } public function configItem(DisplayVersion $module, DisplayVersionItem $item, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse { abort_unless($item->display_version_id === $module->id, 404); if (! $module->is_active) { return response()->json(['error' => 'Module preview not configured'], 404); } $item->is_active = true; $module->setRelation('items', $item->newCollection([$item])); return response()->json($configBuilder->fromModules($module->newCollection([$module]), $item->updated_at)); } }