Files
wticreatorstudio/Modules/Frontend/Http/Controllers/VideoController.php
T
2024-04-04 15:36:55 +08:00

68 lines
1.7 KiB
PHP

<?php
namespace Modules\Frontend\Http\Controllers;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Frontend\Entities\Creator;
use Modules\Frontend\Entities\Video;
use Modules\Frontend\Services\Videos;
class VideoController extends Controller
{
protected $service;
public function __construct()
{
$this->service = new Videos();
}
public function index()
{
$videos = $this->service->all();
return response()->json([
'message' => 'Success',
'videos' => $videos,
]);
}
public function getByPage(Request $request)
{
$rows = $request->rows;
$page = $request->page;
$filter = $request->filter;
$result = $this->service->getByPage($page, $rows, $filter);
return response()->json($result);
}
public function getByKeyword(Request $request)
{
$result = $this->service->getByKeyword($request->filter, Video::LAZY_LOAD_ITEM_COUNT);
return response()->json([
'items' => $result,
]);
}
public function lazyLoad(Request $request, Creator $creator)
{
$items = $this->service->getByCreator($creator, Video::LAZY_LOAD_ITEM_COUNT, $request->skipped + Video::LAZY_LOAD_ITEM_COUNT);
return response()->json([
'items' => $items,
]);
}
public function lazyLoadByKeyword(Request $request)
{
$items = $this->service->getByKeyword($request->filter, Video::LAZY_LOAD_ITEM_COUNT, $request->skipped + Video::LAZY_LOAD_ITEM_COUNT);
return response()->json([
'items' => $items,
]);
}
}