mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-21 01:12:14 +00:00
controller refactoring part 21
This commit is contained in:
@@ -1,114 +0,0 @@
|
||||
<?php
|
||||
namespace Support\Demo\Actions;
|
||||
|
||||
use ByteUnits\Metric;
|
||||
use Illuminate\Support\Str;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Items\Requests\RenameItemRequest;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
|
||||
class DemoService
|
||||
{
|
||||
/**
|
||||
* Create new directory
|
||||
*
|
||||
* @param $request
|
||||
* @return array
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function create_folder($request)
|
||||
{
|
||||
return [
|
||||
'user_id' => 1,
|
||||
'id' => Str::uuid(),
|
||||
'parent_id' => random_int(1000, 9999),
|
||||
'name' => $request->name,
|
||||
'type' => 'folder',
|
||||
'author' => $request->user() ? 'user' : 'visitor',
|
||||
'items' => '0',
|
||||
'color' => isset($request->icon['color']) ? $request->icon['color'] : null,
|
||||
'emoji' => isset($request->icon['emoji']) ? $request->icon['emoji'] : null,
|
||||
'updated_at' => now()->format('j M Y \a\t H:i'),
|
||||
'created_at' => now()->format('j M Y \a\t H:i'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename item name
|
||||
*
|
||||
* @param RenameItemRequest $request
|
||||
* @param $id
|
||||
* @return mixed
|
||||
*/
|
||||
public function rename_item($request, $id)
|
||||
{
|
||||
// Get item
|
||||
if ($request->type === 'folder') {
|
||||
$item = Folder::where('id', $id)
|
||||
->where('user_id', 1)
|
||||
->first();
|
||||
} else {
|
||||
$item = File::where('id', $id)
|
||||
->where('user_id', 1)
|
||||
->first();
|
||||
}
|
||||
|
||||
if ($item) {
|
||||
$item->name = $request->name;
|
||||
$item->emoji = $request->icon['emoji'] ?? null;
|
||||
$item->color = $request->icon['color'] ?? null;
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
return [
|
||||
'id' => $request->id,
|
||||
'name' => $request->name,
|
||||
'type' => $request->type,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload file
|
||||
*
|
||||
* @param $request
|
||||
* @return array
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function upload($request)
|
||||
{
|
||||
// File
|
||||
$file = $request->file('file');
|
||||
$filename = Str::random() . '-' . str_replace(' ', '', $file->getClientOriginalName());
|
||||
$thumbnail = null;
|
||||
$filesize = $file->getSize();
|
||||
$filetype = get_file_type($file->getMimeType());
|
||||
|
||||
return [
|
||||
'id' => Str::uuid(),
|
||||
'folder_id' => $request->parent_id,
|
||||
'thumbnail' => 'data:' . $request->file('file')->getMimeType() . ';base64, ' . base64_encode(file_get_contents($request->file('file'))),
|
||||
'name' => $file->getClientOriginalName(),
|
||||
'basename' => $filename,
|
||||
'mimetype' => $file->getClientOriginalExtension(),
|
||||
'filesize' => Metric::bytes($filesize)->format(),
|
||||
'type' => $filetype,
|
||||
'file_url' => 'https://vuefilemanager.hi5ve.digital/assets/vue-file-manager-preview.jpg',
|
||||
'author' => $request->user() ? 'user' : 'visitor',
|
||||
'created_at' => now()->format('j M Y \a\t H:i'),
|
||||
'updated_at' => now()->format('j M Y \a\t H:i'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Return 204 status
|
||||
*
|
||||
* @param $user
|
||||
* @return ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
public function favourites($user)
|
||||
{
|
||||
return $user->favouriteFolders->makeHidden(['pivot']);
|
||||
}
|
||||
}
|
||||
32
src/Support/Demo/Actions/FakeCreateFolderAction.php
Normal file
32
src/Support/Demo/Actions/FakeCreateFolderAction.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Support\Demo\Actions;
|
||||
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class FakeCreateFolderAction
|
||||
{
|
||||
/**
|
||||
* Create new directory
|
||||
*/
|
||||
public function __invoke(
|
||||
Request $request
|
||||
): array {
|
||||
return [
|
||||
'user_id' => 1,
|
||||
'id' => Str::uuid(),
|
||||
'parent_id' => random_int(1000, 9999),
|
||||
'name' => $request->input('name'),
|
||||
'type' => 'folder',
|
||||
'author' => $request->user() ? 'user' : 'visitor',
|
||||
'items' => '0',
|
||||
'color' => $request->input('icon.color') ?? null,
|
||||
'emoji' => $request->input('icon.emoji') ?? null,
|
||||
'updated_at' => now()->format(__t('time')),
|
||||
'created_at' => now()->format(__t('time')),
|
||||
];
|
||||
}
|
||||
}
|
||||
44
src/Support/Demo/Actions/FakeRenameFileOrFolderAction.php
Normal file
44
src/Support/Demo/Actions/FakeRenameFileOrFolderAction.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Support\Demo\Actions;
|
||||
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Items\Requests\RenameItemRequest;
|
||||
|
||||
class FakeRenameFileOrFolderAction
|
||||
{
|
||||
/**
|
||||
* Rename item name
|
||||
*/
|
||||
public function __invoke(
|
||||
RenameItemRequest $request,
|
||||
string $id,
|
||||
): array {
|
||||
|
||||
// Get item
|
||||
if ($request->input('type') === 'folder') {
|
||||
$item = Folder::where('id', $id)
|
||||
->first();
|
||||
} else {
|
||||
$item = File::where('id', $id)
|
||||
->first();
|
||||
}
|
||||
|
||||
if ($item) {
|
||||
$item->name = $request->input('name');
|
||||
$item->emoji = $request->input('icon.emoji') ?? null;
|
||||
$item->color = $request->input('icon.color') ?? null;
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
return [
|
||||
'id' => $request->input('id'),
|
||||
'name' => $request->input('name'),
|
||||
'type' => $request->input('type'),
|
||||
];
|
||||
}
|
||||
}
|
||||
41
src/Support/Demo/Actions/FakeUploadFileAction.php
Normal file
41
src/Support/Demo/Actions/FakeUploadFileAction.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Support\Demo\Actions;
|
||||
|
||||
|
||||
use ByteUnits\Metric;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class FakeUploadFileAction
|
||||
{
|
||||
/**
|
||||
* Upload file
|
||||
*/
|
||||
public function __invoke(
|
||||
UploadRequest $request
|
||||
): array {
|
||||
$file = $request->file('file');
|
||||
$filename = Str::random() . '-' . str_replace(' ', '', $file->getClientOriginalName());
|
||||
$thumbnail = 'data:' . $request->file('file')->getMimeType() . ';base64, ' . base64_encode(file_get_contents($request->file('file')));
|
||||
|
||||
$fileType = get_file_type($file->getMimeType());
|
||||
$fileSize = Metric::bytes($file->getSize())->format();
|
||||
|
||||
return [
|
||||
'id' => Str::uuid(),
|
||||
'folder_id' => $request->input('parent_id'),
|
||||
'thumbnail' => $thumbnail,
|
||||
'name' => $file->getClientOriginalName(),
|
||||
'basename' => $filename,
|
||||
'mimetype' => $file->getClientOriginalExtension(),
|
||||
'file_url' => 'https://vuefilemanager.hi5ve.digital/assets/vue-file-manager-preview.jpg',
|
||||
'author' => $request->user() ? 'user' : 'visitor',
|
||||
'created_at' => now()->format(__t('time')),
|
||||
'updated_at' => now()->format(__t('time')),
|
||||
'type' => $fileType,
|
||||
'filesize' => $fileSize,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user