27 lines
954 B
PHP
27 lines
954 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\SymfonyCastDl\SymfonyCastDlService;
|
|
use App\Models\Course;
|
|
|
|
class ChapterController extends Controller
|
|
{
|
|
public function __invoke(Course $course, int $chapter, SymfonyCastDlService $symfonyCastDlService)
|
|
{
|
|
$chapter = $course->chapters->firstWhere('order', $chapter);
|
|
$symfonyCastDlService->videoSize($chapter);
|
|
if ($chapter->sync_offline) {
|
|
$symfonyCastDlService->downloadFile($chapter);
|
|
$videoUrl = $chapter->video_url;
|
|
} else {
|
|
$videoUrl = $symfonyCastDlService->getChapterInfo($chapter);
|
|
}
|
|
|
|
$chapters = $chapter->course->chapters;
|
|
$next = $chapters->where('order', '>', $chapter->order)->first();
|
|
$prev = $chapters->where('order', '<', $chapter->order)->sortByDesc('order')->first();
|
|
return view('chapter.index', compact('chapter', 'chapters', 'prev', 'next', 'videoUrl'));
|
|
}
|
|
}
|