controller refactoring part 21

This commit is contained in:
Peter Papp
2021-07-21 17:20:19 +02:00
parent 91fc7f2d9d
commit d55f5c3b41
18 changed files with 360 additions and 319 deletions
@@ -1,34 +1,31 @@
<?php
namespace Domain\Folders\Controllers;
use Auth;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use Support\Demo\Actions\DemoService;
use Domain\Folders\Actions\CreateFolderAction;
use Domain\Folders\Requests\CreateFolderRequest;
use Support\Demo\Actions\FakeCreateFolderAction;
class CreateFolderController extends Controller
{
public function __construct(
public DemoService $demo
) {
}
/**
* Create new folder for authenticated master|editor user
*/
public function __invoke(
CreateFolderRequest $request,
CreateFolderAction $createFolder,
): Response {
FakeCreateFolderAction $fakeCreateFolder,
): Response|array {
// If is demo, return fake folder
if (is_demo_account('howdy@hi5ve.digital')) {
return $this->demo->create_folder($request);
if (is_demo_account(Auth::user()->email)) {
return ($fakeCreateFolder)($request);
}
$folder = ($createFolder)($request);
// Create new folder
return response($folder, 201);
}
}
@@ -5,14 +5,9 @@ use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Support\Demo\Actions\DemoService;
class FavouriteController extends Controller
{
public function __construct(
public DemoService $demo,
) {
}
/**
* Add folder to user favourites
@@ -24,7 +19,7 @@ class FavouriteController extends Controller
foreach ($request->input('folders') as $id) {
if (is_demo_account($user->email)) {
return $this->demo->favourites($user);
return $user->favouriteFolders->makeHidden(['pivot']);
}
// Add folder to user favourites
@@ -45,7 +40,7 @@ class FavouriteController extends Controller
$user = Auth::user();
if (is_demo_account($user->email)) {
return $this->demo->favourites($user);
return $user->favouriteFolders->makeHidden(['pivot']);
}
// Remove folder from user favourites
@@ -3,30 +3,29 @@ namespace Domain\Folders\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Demo\Actions\FakeCreateFolderAction;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Support\Demo\Actions\DemoService;
use Domain\Folders\Actions\CreateFolderAction;
use Domain\Folders\Requests\CreateFolderRequest;
/**
* Create new folder for guest user with edit permission
*/
class EditorCreateFolderController extends Controller
class VisitorCreateFolderController extends Controller
{
public function __construct(
public HelperService $helper,
public DemoService $demo,
) {
}
) {}
public function __invoke(
FakeCreateFolderAction $fakeCreateFolderAction,
CreateFolderAction $createFolder,
CreateFolderRequest $request,
Share $shared,
): Response | array {
if (is_demo_account($shared->user->email)) {
return $this->demo->create_folder($request);
return ($fakeCreateFolderAction)($request);
}
// Check ability to access protected share record