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

View File

@@ -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']);
}
}

View 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')),
];
}
}

View 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'),
];
}
}

View 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,
];
}
}