Files
wticreatorstudio/Modules/StudioPlus/Http/Controllers/API/StudioPlusVideoThumbnailController.php
T
2024-02-12 22:54:20 -05:00

95 lines
2.5 KiB
PHP

<?php
namespace Modules\StudioPlus\Http\Controllers\API;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Storage;
use Illuminate\Contracts\Support\Renderable;
use Modules\StudioPlus\Entities\StudioPlusVideo;
use Modules\StudioPlus\Entities\StudioPlusChannel;
use Modules\StudioPlus\Services\GoogleCloudPlatform;
use Modules\StudioPlus\Services\UploadService;
class StudioPlusVideoThumbnailController extends Controller
{
public function index(Request $request, StudioPlusChannel $studioPlusChannel, StudioPlusVideo $studioPlusVideo)
{
return $studioPlusVideo->thumbnails;
}
public function store(Request $request, StudioPlusChannel $studioPlusChannel, StudioPlusVideo $studioPlusVideo)
{
$request->validate([
'thumbnail' => ['required']
]);
(new GoogleCloudPlatform)->handleUploadThumbnail($request, $studioPlusChannel, $studioPlusVideo);
return response()->noContent();
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
public function uploadThumbnail(Request $request)
{
$request->validate([
'thumbnail' => ['required']
]);
$ret = (new UploadService())->handleUploadThumbnail($request);
if ($ret) {
return response()->json([
'message' => 'Thumbnail has been updated.',
'thumbnails' => $ret
]);
}
return response()->json([
'message' => 'Failed to update thumbnail.'
], 400);
}
public function updateThumbnail(Request $request, StudioPlusChannel $studioPlusChannel, StudioPlusVideo $studioPlusVideo)
{
$request->validate([
'thumbnail' => ['required']
]);
$id = $studioPlusVideo->id;
$file = $request->thumbnail;
$thumbnail = (new UploadService())->handleUpdateThumbnail($id, $file);
return response()->json([
'message' => 'Thumbnail has been updated.',
'thumbnail' => $thumbnail
]);
}
public function getThumbnails(Request $request, StudioPlusVideo $video)
{
if ($video) {
$thumbnails = $video->thumbnails;
return response()->json([
'message' => 'Success',
'thumbnails' => $thumbnails
]);
}
return response()->json([
'message' => 'Video not found.'
], 404);
}
}