fipamo/app/Http/Controllers/DashController.php

104 lines
2.9 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers;
use Symfony\Component\HttpFoundation\Response;
use App\Interfaces\PageRepositoryInterface;
use App\Interfaces\MemberRepositoryInterface;
use App\Services\Assets\FileUploadService;
use Illuminate\Http\Request;
class DashController extends Controller
{
protected PageRepositoryInterface $pages;
protected MemberRepositoryInterface $member;
protected FileUploadService $upload;
public function __construct(
PageRepositoryInterface $pageRepository,
MemberRepositoryInterface $memberRepo,
FileUploadService $fileUploadService,
) {
$this->pages = $pageRepository;
$this->member = $memberRepo;
$this->upload = $fileUploadService;
}
//---
// GET
//---
public function start()
{
if ($this->member::status()) {
$result = [];
$result = $this->pages->getGroup(1, 4);
return view('back.start', [
"status" => $this->member::status(),
"result" => $result,
"title" => "Start"
]);
} else {
return view('back.login', [
"status" => $this->member::status(),
"title" => "Hi!"
]);
}
}
public function exit()
{
session()->flush();
return redirect()->intended('dashboard');
}
//---
// POST
//---
public function enter(Request $request): Response
{
$token = csrf_token();
$credentials = $request->validate([
'handle' => ['required'],
'password' => ['required'],
]);
if ($credentials) {
$result = $this->member->auth($request);
if ($result['status']) {
//$request->session()->regenerate();
return redirect()->intended('dashboard');
//return $this->start();
} else {
return back()->withErrors([
'error' => $result['message'],
]);
}
} else {
return back()->withErrors([
'error' => 'Nope. Check your crendtials, champ',
]);
}
}
public function uploads(Request $request)
{
$result = $result = $this->upload->handleFile($request);
//update configs for specfic uploads
switch ($request['source']) {
case 'avatar-upload':
$member = [];
$member = session('member');
$member['avatar'] = $result['filePath'];
$member = (object) $member;
$this->member->update($member);
break;
case 'background-upload':
$this->settings->updateGlobalData('background', $result['filePath']);
break;
}
return $result;
}
}