allow sorting by course name and published date, link to manually update course details,
This commit is contained in:
17
app/Http/Controllers/Course/Update.php
Normal file
17
app/Http/Controllers/Course/Update.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Course;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\SymfonyCastDl\SymfonyCastDlService;
|
||||
use App\Models\Course;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
|
||||
class Update extends Controller
|
||||
{
|
||||
public function __invoke(SymfonyCastDlService $symfonyCastDlService, Course $course): RedirectResponse
|
||||
{
|
||||
$symfonyCastDlService->updateCourse($course);
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
@@ -10,14 +10,17 @@ use Illuminate\Http\Request;
|
||||
|
||||
class Index extends Controller
|
||||
{
|
||||
public function index(string $track = null)
|
||||
public function index(Request $request, string $track = null)
|
||||
{
|
||||
$courses = Course::where('tracks', 'like', '%' . $track . '%')->with('chapters')->withCount([
|
||||
'chapters',
|
||||
'chapters as chapters_to_sync' => function (Builder $query) {
|
||||
$query->where('sync_offline', 1);
|
||||
},
|
||||
])->get();
|
||||
]);
|
||||
$request->whenHas('order', fn($order) => $courses->orderby($order, $request->dir));
|
||||
$request->whenMissing('order', fn() => $courses->orderby('name'));
|
||||
$courses = $courses->get();
|
||||
return view('index', compact(['courses']));
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,14 @@ class SymfonyCastDlService
|
||||
}
|
||||
}
|
||||
|
||||
public function updateCourse(Course $course): void
|
||||
{
|
||||
$singleCoursePage = $this->client->get('/screencast/' . $course->link);
|
||||
$chapters = $this->htmlParser->getCourseDetails($singleCoursePage, $course->id);
|
||||
$chapters->each->save();
|
||||
$chapters->each(fn($chapter) => GetVideoFileSize::dispatch($chapter->id));
|
||||
}
|
||||
|
||||
public function getChapterInfo(Chapter $chapter): string
|
||||
{
|
||||
$course = $chapter->course;
|
||||
|
||||
Reference in New Issue
Block a user