controller refactoring part 22

This commit is contained in:
Peter Papp
2021-07-21 17:21:19 +02:00
parent d55f5c3b41
commit 9fb9b8a1b0
32 changed files with 105 additions and 173 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -5
View File
@@ -1,22 +1,21 @@
<?php
use App\Users\Actions\CreateNewUserAction;
use Domain\Items\Controllers\DeleteFileOrFolderController;
use Domain\Items\Controllers\MoveFileOrFolderController;
use Domain\Items\Controllers\RenameFileOrFolderController;
use Domain\Pages\Controllers\PagesController;
use Domain\Sharing\Controllers\ShareController;
use Domain\Items\Controllers\EditItemsController;
use Domain\Trash\Controllers\DumpTrashController;
use App\Users\Controllers\ResetPasswordController;
use Domain\Files\Controllers\UploadFileController;
use Domain\Zipping\Controllers\ZipFilesController;
use App\Users\Controllers\ForgotPasswordController;
use Domain\Files\Controllers\UploadFileController;
use Domain\Folders\Controllers\FavouriteController;
use Domain\Plans\Controllers\ActivePlansController;
use Domain\Zipping\Controllers\ZipFolderController;
use Domain\Folders\Controllers\CreateFolderController;
use Domain\Sharing\Controllers\ShareViaEmailController;
use Domain\Items\Controllers\MoveFileOrFolderController;
use Domain\Items\Controllers\DeleteFileOrFolderController;
use Domain\Items\Controllers\RenameFileOrFolderController;
use Domain\Settings\Controllers\GetSettingsValueController;
use Domain\Trash\Controllers\RestoreTrashContentController;
use Domain\Browsing\Controllers\BrowseLatestFilesController;
+4 -4
View File
@@ -1,15 +1,15 @@
<?php
use Domain\Items\Controllers\VisitorDeleteFileOrFolderController;
use Domain\Items\Controllers\VisitorMoveFileOrFolderController;
use Domain\Items\Controllers\VisitorRenameFileOrFolderController;
use Domain\Sharing\Controllers\ShareController;
use Domain\Sharing\Controllers\OGSiteController;
use Domain\Zipping\Controllers\EditorZipFilesController;
use Domain\Files\Controllers\VisitorUploadFilesController;
use Domain\Zipping\Controllers\EditorZipFolderController;
use Domain\Files\Controllers\VisitorUploadFilesController;
use Domain\Folders\Controllers\VisitorCreateFolderController;
use Domain\Items\Controllers\VisitorMoveFileOrFolderController;
use Domain\Files\Controllers\VisitorGetSingleFileInfoController;
use Domain\Items\Controllers\VisitorDeleteFileOrFolderController;
use Domain\Items\Controllers\VisitorRenameFileOrFolderController;
use Domain\Browsing\Controllers\VisitorBrowseFolderContentController;
use Domain\Folders\Controllers\VisitorNavigationFolderTreeController;
use Domain\Browsing\Controllers\VisitorSearchFilesAndFoldersController;
+3 -3
View File
@@ -4,11 +4,11 @@ namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use App\Console\Commands\SetupDevEnvironment;
use App\Console\Commands\SetupProdEnvironment;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Support\Scheduler\Actions\DeleteExpiredShareLinksAction;
use Support\Scheduler\Actions\DeleteFailedFilesAction;
use Support\Scheduler\Actions\DeleteOldZipsAction;
use Support\Scheduler\Actions\DeleteFailedFilesAction;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Support\Scheduler\Actions\DeleteUnverifiedUsersAction;
use Support\Scheduler\Actions\DeleteExpiredShareLinksAction;
class Kernel extends ConsoleKernel
{
@@ -1,9 +1,6 @@
<?php
namespace App\Users\Actions;
use Illuminate\Support\Facades\Storage;
class CheckStorageCapacityAction
@@ -30,4 +27,4 @@ class CheckStorageCapacityAction
abort(423, 'You exceed your storage limit!');
}
}
}
}
@@ -1,9 +1,6 @@
<?php
namespace Domain\Files\Actions;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\ImageManagerStatic as Image;
@@ -16,8 +13,7 @@ class CreateImageThumbnailAction
string $file_path,
string $filename,
string $user_id
): string|null {
): string | null {
$availableFormats = ['image/gif', 'image/jpeg', 'image/jpg', 'image/png', 'image/webp'];
// Create thumbnail from image
@@ -45,4 +41,4 @@ class CreateImageThumbnailAction
return $thumbnail ?? null;
}
}
}
@@ -1,13 +1,10 @@
<?php
namespace Domain\Files\Actions;
use Aws\Exception\MultipartUploadException;
use Aws\S3\MultipartUploader;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Aws\Exception\MultipartUploadException;
use Symfony\Component\HttpKernel\Exception\HttpException;
class MoveFileToExternalStorageAction
@@ -16,9 +13,9 @@ class MoveFileToExternalStorageAction
* Move file to external storage if is set
*/
public function __invoke(
string $file, string $user_id
string $file,
string $user_id
): void {
$disk_local = \Storage::disk('local');
// Get file size
@@ -63,4 +60,4 @@ class MoveFileToExternalStorageAction
// Delete file after upload
$disk_local->delete("files/$user_id/$file");
}
}
}
@@ -1,7 +1,6 @@
<?php
namespace Domain\Files\Actions;
use App\Users\Actions\CheckStorageCapacityAction;
use Domain\Sharing\Models\Share;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
@@ -9,6 +8,7 @@ use Illuminate\Support\Facades\Storage;
use Domain\Files\Requests\UploadRequest;
use Domain\Files\Models\File as UserFile;
use Domain\Traffic\Actions\RecordUploadAction;
use App\Users\Actions\CheckStorageCapacityAction;
class UploadFileAction
{
@@ -17,7 +17,8 @@ class UploadFileAction
public CheckStorageCapacityAction $checkStorageCapacity,
public CreateImageThumbnailAction $createImageThumbnail,
public MoveFileToExternalStorageAction $moveFileToExternalStorage,
) {}
) {
}
/**
* Upload new file
@@ -16,8 +16,7 @@ class UploadFileController extends Controller
UploadRequest $request,
UploadFileAction $uploadFiles,
FakeUploadFileAction $fakeUploadFile,
): File|array {
): File | array {
if (is_demo_account('howdy@hi5ve.digital')) {
return ($fakeUploadFile)($request);
}
@@ -3,12 +3,11 @@ namespace Domain\Files\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Demo\Actions\FakeUploadFileAction;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Support\Demo\Actions\DemoService;
use Domain\Files\Requests\UploadRequest;
use Domain\Files\Actions\UploadFileAction;
use Support\Demo\Actions\FakeUploadFileAction;
/**
* guest user upload file into shared folder
@@ -17,7 +16,8 @@ class VisitorUploadFilesController extends Controller
{
public function __construct(
public HelperService $helper,
) {}
) {
}
public function __invoke(
FakeUploadFileAction $fakeUploadFile,
@@ -1,9 +1,6 @@
<?php
namespace Domain\Folders\Actions;
use Domain\Folders\Models\Folder;
class UpdateFolderPropertyAction
@@ -40,4 +37,4 @@ class UpdateFolderPropertyAction
]);
}
}
}
}
@@ -17,8 +17,7 @@ class CreateFolderController extends Controller
CreateFolderRequest $request,
CreateFolderAction $createFolder,
FakeCreateFolderAction $fakeCreateFolder,
): Response|array {
): Response | array {
// If is demo, return fake folder
if (is_demo_account(Auth::user()->email)) {
return ($fakeCreateFolder)($request);
@@ -8,7 +8,6 @@ use Illuminate\Support\Facades\Auth;
class FavouriteController extends Controller
{
/**
* Add folder to user favourites
* todo: pridat validator ako AddToFavouritesRequest
@@ -3,11 +3,11 @@ 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 Domain\Folders\Actions\CreateFolderAction;
use Domain\Folders\Requests\CreateFolderRequest;
use Support\Demo\Actions\FakeCreateFolderAction;
/**
* Create new folder for guest user with edit permission
@@ -16,7 +16,8 @@ class VisitorCreateFolderController extends Controller
{
public function __construct(
public HelperService $helper,
) {}
) {
}
public function __invoke(
FakeCreateFolderAction $fakeCreateFolderAction,
@@ -1,15 +1,12 @@
<?php
namespace Domain\Items\Actions;
use DB;
use Domain\Files\Models\File as UserFile;
use Domain\Folders\Models\Folder;
use Domain\Sharing\Models\Share;
use Illuminate\Support\Arr;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Storage;
use Domain\Files\Models\File as UserFile;
class DeleteFileOrFolderAction
{
@@ -119,4 +116,4 @@ class DeleteFileOrFolderAction
}
}
}
}
}
@@ -1,12 +1,8 @@
<?php
namespace Domain\Items\Actions;
use App\Http\Controllers\Controller;
use Domain\Files\Models\File as UserFile;
use Domain\Folders\Models\Folder;
use Domain\Files\Models\File as UserFile;
class MoveFileOrFolderAction
{
@@ -29,4 +25,4 @@ class MoveFileOrFolderAction
}
}
}
}
}
@@ -1,12 +1,8 @@
<?php
namespace Domain\Items\Actions;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\RenameItemRequest;
use Illuminate\Database\Eloquent\Model;
use Domain\Items\Requests\RenameItemRequest;
class RenameFileOrFolderAction
{
@@ -17,7 +13,6 @@ class RenameFileOrFolderAction
RenameItemRequest $request,
string $id,
): Model {
// Get item
$item = get_item($request->input('type'), $id);
@@ -29,4 +24,4 @@ class RenameFileOrFolderAction
// Return updated item
return $item;
}
}
}
@@ -1,14 +1,11 @@
<?php
namespace Domain\Items\Controllers;
use App\Http\Controllers\Controller;
use Auth;
use Domain\Items\Actions\DeleteFileOrFolderAction;
use Domain\Items\Requests\DeleteItemRequest;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\DeleteItemRequest;
use Domain\Items\Actions\DeleteFileOrFolderAction;
class DeleteFileOrFolderController extends Controller
{
@@ -18,9 +15,11 @@ class DeleteFileOrFolderController extends Controller
public function __invoke(
DeleteItemRequest $request,
DeleteFileOrFolderAction $deleteFileOrFolder,
): Response{
): Response {
abort_if(
is_demo_account(Auth::user()?->email), 204, 'Done.'
is_demo_account(Auth::user()?->email),
204,
'Done.'
);
foreach ($request->input('items') as $item) {
@@ -29,4 +28,4 @@ class DeleteFileOrFolderController extends Controller
return response('Done', 204);
}
}
}
@@ -1,17 +1,11 @@
<?php
namespace Domain\Items\Controllers;
use App\Http\Controllers\Controller;
use Auth;
use Domain\Files\Models\File as UserFile;
use Domain\Folders\Models\Folder;
use Domain\Items\Actions\MoveFileOrFolderAction;
use Domain\Items\Requests\MoveItemRequest;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\MoveItemRequest;
use Domain\Items\Actions\MoveFileOrFolderAction;
class MoveFileOrFolderController extends Controller
{
@@ -22,15 +16,17 @@ class MoveFileOrFolderController extends Controller
MoveItemRequest $request,
MoveFileOrFolderAction $moveFileOrFolder,
): Response {
abort_if(
is_demo_account(Auth::user()?->email), 204, 'Done.'
is_demo_account(Auth::user()?->email),
204,
'Done.'
);
($moveFileOrFolder)(
$request, $request->input('to_id')
$request,
$request->input('to_id')
);
return response('Done!', 204);
}
}
}
@@ -1,15 +1,12 @@
<?php
namespace Domain\Items\Controllers;
use App\Http\Controllers\Controller;
use Auth;
use Domain\Folders\Actions\UpdateFolderPropertyAction;
use Domain\Items\Actions\RenameFileOrFolderAction;
use Domain\Items\Requests\RenameItemRequest;
use App\Http\Controllers\Controller;
use Illuminate\Database\Eloquent\Model;
use Domain\Items\Requests\RenameItemRequest;
use Domain\Items\Actions\RenameFileOrFolderAction;
use Domain\Folders\Actions\UpdateFolderPropertyAction;
use Support\Demo\Actions\FakeRenameFileOrFolderAction;
class RenameFileOrFolderController extends Controller
@@ -23,18 +20,17 @@ class RenameFileOrFolderController extends Controller
RenameFileOrFolderAction $renameFileOrFolder,
UpdateFolderPropertyAction $updateFolderProperty,
FakeRenameFileOrFolderAction $fakeRenameFileOrFolder,
): Model|array {
): Model | array {
if (is_demo_account(Auth::user()->email)) {
return ($fakeRenameFileOrFolder)($request, $id);
}
// If request contain icon or color, then change it
if ($request->filled('emoji') || $request->filled('color')) {
($updateFolderProperty)($request, $id);
($updateFolderProperty)($request, $id);
}
// Rename Item
return ($renameFileOrFolder)($request, $id);
}
}
}
@@ -1,16 +1,12 @@
<?php
namespace Domain\Items\Controllers;
use App\Http\Controllers\Controller;
use Domain\Items\Actions\DeleteFileOrFolderAction;
use Domain\Items\Actions\MoveFileOrFolderAction;
use Domain\Items\Requests\DeleteItemRequest;
use Domain\Sharing\Models\Share;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\DeleteItemRequest;
use Domain\Items\Actions\DeleteFileOrFolderAction;
/**
* Delete item for guest user with edit permission
@@ -20,15 +16,17 @@ class VisitorDeleteFileOrFolderController extends Controller
public function __construct(
private HelperService $helper,
private DeleteFileOrFolderAction $deleteFileOrFolder,
) {}
) {
}
public function __invoke(
DeleteItemRequest $request,
Share $shared,
): Response {
abort_if(
is_demo_account($shared->user->email), 204, 'Done.'
is_demo_account($shared->user->email),
204,
'Done.'
);
// Check ability to access protected share record
@@ -56,4 +54,4 @@ class VisitorDeleteFileOrFolderController extends Controller
return response('Done', 204);
}
}
}
@@ -1,16 +1,13 @@
<?php
namespace Domain\Items\Controllers;
use App\Http\Controllers\Controller;
use Domain\Files\Models\File;
use Domain\Items\Actions\MoveFileOrFolderAction;
use Domain\Items\Requests\MoveItemRequest;
use Domain\Sharing\Models\Share;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\MoveItemRequest;
use Domain\Items\Actions\MoveFileOrFolderAction;
/**
* Move item for guest user with edit permission
@@ -20,15 +17,17 @@ class VisitorMoveFileOrFolderController extends Controller
public function __construct(
private HelperService $helper,
private MoveFileOrFolderAction $moveFileOrFolder,
) {}
) {
}
public function __invoke(
MoveItemRequest $request,
Share $shared,
): Response {
abort_if(
is_demo_account($shared->user->email), 204, 'Done.'
is_demo_account($shared->user->email),
204,
'Done.'
);
// Check ability to access protected share record
@@ -61,4 +60,4 @@ class VisitorMoveFileOrFolderController extends Controller
return response('Done!', 204);
}
}
}
@@ -1,17 +1,14 @@
<?php
namespace Domain\Items\Controllers;
use App\Http\Controllers\Controller;
use Domain\Folders\Actions\UpdateFolderPropertyAction;
use Domain\Items\Actions\RenameFileOrFolderAction;
use Domain\Items\Requests\RenameItemRequest;
use Domain\Sharing\Models\Share;
use Illuminate\Http\Response;
use Support\Demo\Actions\FakeRenameFileOrFolderAction;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\RenameItemRequest;
use Domain\Items\Actions\RenameFileOrFolderAction;
use Domain\Folders\Actions\UpdateFolderPropertyAction;
use Support\Demo\Actions\FakeRenameFileOrFolderAction;
/**
* Rename item for guest user with edit permission
@@ -23,14 +20,14 @@ class VisitorRenameFileOrFolderController extends Controller
private RenameFileOrFolderAction $renameFileOrFolder,
private UpdateFolderPropertyAction $updateFolderProperty,
private FakeRenameFileOrFolderAction $fakeRenameFileOrFolder,
) {}
) {
}
public function __invoke(
RenameItemRequest $request,
string $id,
Share $shared,
): Response {
// Return fake renamed item in demo
if (is_demo_account($shared->user->email)) {
return ($this->fakeRenameFileOrFolder)($request, $id);
@@ -69,4 +66,4 @@ class VisitorRenameFileOrFolderController extends Controller
return response($item, 201);
}
}
}
@@ -1,11 +1,8 @@
<?php
namespace Support\Demo\Actions;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
class FakeCreateFolderAction
{
@@ -29,4 +26,4 @@ class FakeCreateFolderAction
'created_at' => now()->format(__t('time')),
];
}
}
}
@@ -1,9 +1,6 @@
<?php
namespace Support\Demo\Actions;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use Domain\Items\Requests\RenameItemRequest;
@@ -17,7 +14,6 @@ class FakeRenameFileOrFolderAction
RenameItemRequest $request,
string $id,
): array {
// Get item
if ($request->input('type') === 'folder') {
$item = Folder::where('id', $id)
@@ -41,4 +37,4 @@ class FakeRenameFileOrFolderAction
'type' => $request->input('type'),
];
}
}
}
@@ -1,12 +1,9 @@
<?php
namespace Support\Demo\Actions;
use ByteUnits\Metric;
use Domain\Files\Requests\UploadRequest;
use Illuminate\Support\Str;
use Domain\Files\Requests\UploadRequest;
class FakeUploadFileAction
{
@@ -38,4 +35,4 @@ class FakeUploadFileAction
'filesize' => $fileSize,
];
}
}
}
@@ -1,9 +1,6 @@
<?php
namespace Support\Scheduler\Actions;
use Carbon\Carbon;
use Domain\Sharing\Models\Share;
@@ -26,4 +23,4 @@ class DeleteExpiredShareLinksAction
}
});
}
}
}
@@ -1,9 +1,6 @@
<?php
namespace Support\Scheduler\Actions;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
@@ -41,4 +38,4 @@ class DeleteFailedFilesAction
}
});
}
}
}
@@ -1,9 +1,6 @@
<?php
namespace Support\Scheduler\Actions;
use Domain\Zipping\Models\Zip;
use Illuminate\Support\Facades\Storage;
@@ -24,4 +21,4 @@ class DeleteOldZipsAction
$zip->delete();
});
}
}
}
@@ -1,9 +1,6 @@
<?php
namespace Support\Scheduler\Actions;
use App\Users\Models\User;
class DeleteUnverifiedUsersAction
@@ -18,4 +15,4 @@ class DeleteUnverifiedUsersAction
->get()
->each(fn ($user) => $user->delete());
}
}
}
-4
View File
@@ -2,15 +2,11 @@
namespace Support\Services;
use Illuminate\Support\Arr;
use Aws\S3\MultipartUploader;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Aws\Exception\MultipartUploadException;
use Intervention\Image\ImageManagerStatic as Image;
use Symfony\Component\HttpKernel\Exception\HttpException;
class HelperService
{
+4 -4
View File
@@ -2,15 +2,15 @@
namespace Tests\Support\Scheduler;
use Storage;
use Support\Scheduler\Actions\DeleteExpiredShareLinksAction;
use Support\Scheduler\Actions\DeleteFailedFilesAction;
use Support\Scheduler\Actions\DeleteOldZipsAction;
use Support\Scheduler\Actions\DeleteUnverifiedUsersAction;
use Tests\TestCase;
use App\Users\Models\User;
use Domain\Zipping\Models\Zip;
use Domain\Sharing\Models\Share;
use Illuminate\Http\UploadedFile;
use Support\Scheduler\Actions\DeleteOldZipsAction;
use Support\Scheduler\Actions\DeleteFailedFilesAction;
use Support\Scheduler\Actions\DeleteUnverifiedUsersAction;
use Support\Scheduler\Actions\DeleteExpiredShareLinksAction;
class SchedulerTest extends TestCase
{