Init
This commit is contained in:
38
app/Services/DownloadService.php
Normal file
38
app/Services/DownloadService.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Downloads;
|
||||
use App\Models\Episode;
|
||||
|
||||
use App\Jobs\GetFileSizeFromCDN;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DownloadService
|
||||
{
|
||||
public function createOrUpdateDownloads(Request $request, Episode $episode, int $index): void
|
||||
{
|
||||
$downloadTypes = [
|
||||
'episodedlurl' => 'FHD',
|
||||
'episodedlurlinterpolated' => 'FHDi',
|
||||
'episodedlurl4k' => 'UHD',
|
||||
'downloadUHDi' => 'UHDi',
|
||||
];
|
||||
|
||||
foreach ($downloadTypes as $inputField => $type) {
|
||||
$fieldName = $inputField.$index;
|
||||
if ($request->filled($fieldName)) {
|
||||
$download = Downloads::updateOrCreate([
|
||||
'episode_id' => $episode->id,
|
||||
'type' => $type,
|
||||
], [
|
||||
'url' => $request->input($fieldName),
|
||||
]);
|
||||
|
||||
// Dispatch Job to get File Size from CDN
|
||||
GetFileSizeFromCDN::dispatch($download->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user