fipamo/app/Http/Controllers/Dash/IndexController.php
ro f7c9558da2
reorganized controller dir, added check for dash
seperated dash controllers for api controllers in the controller
directory to make them easier to manage

also added middleware to check authorization when accessing dash pages
2024-03-07 11:36:31 -06:00

77 lines
2 KiB
PHP

<?php
namespace App\Http\Controllers\Dash;
use App\Interfaces\PageRepositoryInterface;
use App\Services\AuthService;
use App\Services\ThemeService;
use App\Http\Controllers\Controller;
class IndexController extends Controller
{
protected PageRepositoryInterface $pages;
protected AuthService $auth;
protected ThemeService $themes;
public function __construct(
PageRepositoryInterface $pageRepository,
AuthService $authService,
ThemeService $themeService,
) {
$this->pages = $pageRepository;
$this->auth = $authService;
$this->themes = $themeService;
}
public function login()
{
if ($this->auth::status()) {
return redirect('dashboard/start');
} else {
return view('back.login', [
"status" => $this->auth::status(),
"title" => "Hi!"
]);
}
}
public function start()
{
$result = [];
if ($this->auth::status()) {
$result = $this->pages->getGroup(1, 4);
}
return view('back.start', [
"status" => $this->auth::status(),
"result" => $result,
"title" => "Start"
]);
}
public function book($pageFilter = 'all', $pageNum = 1)
{
$result = [];
if ($this->auth::status()) {
$result = $this->pages->getGroup($pageNum, 4, $pageFilter);
}
return view('back.book', [
"status" => $this->auth::status(),
"result" => $result,
"currentPage" => $pageNum,
"title" => "Pages"
]);
}
public function page($mode, $uuid)
{
$page = $this->pages->getById($uuid)->first();
return view('back.page', [
"status" => $this->auth::status(),
"mode" => $mode,
"page" => $page,
"views" => $this->themes->getCustomViews($page['layout']),
"title" => 'Editing ' . $page['title']
]);
}
}