Files
wticreatorstudio/Modules/Frontend/Http/Controllers/FrontendController.php
T
2024-02-26 16:50:10 +08:00

77 lines
1.9 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\FeaturedCreator;
use Modules\Frontend\Entities\Video;
use Modules\Frontend\Repositories\SectionRepository;
use Modules\Frontend\Services\Creators;
use Modules\Frontend\Services\Sections;
use Modules\Frontend\Services\Settings;
class FrontendController extends Controller
{
protected $settings;
protected $creators;
protected $sections;
public function __construct() {
$this->settings = new Settings();
$this->creators = new Creators();
$this->sections = new Sections();
}
public function index()
{
$heroVideo = $this->settings->getValue('hero-video');
$creators = $this->creators->getFeatured();
$sections = $this->sections->all();
return view('frontend::index', compact('heroVideo', 'creators', 'sections'));
}
public function manager()
{
return view('frontend::manager');
}
public function video(Request $request, Video $video)
{
$video->load('thumbnail');
return view('frontend::video', compact('video'));
}
public function creators()
{
$creators = $this->creators->all();
return response()->json([
'creators' => $creators,
]);
}
public function featuredCreators()
{
$creators = $this->creators->getFeatured();
return response()->json([
'creators' => $creators,
]);
}
public function updateFeaturedCreators(Request $request)
{
$creators = $request->items;
$this->creators->updateFeatured($creators);
return response()->json([
'message' => __('frontend::common.featured-creators-updated'),
]);
}
}