api resource refactoring part 4

This commit is contained in:
Peter Papp
2021-08-27 11:23:17 +02:00
parent d299183ecd
commit 7984ce3ef1
10 changed files with 47 additions and 39 deletions
@@ -8,14 +8,14 @@ class NavigationFolderTreeController
{
public function __invoke(): array
{
$folders = Folder::with('folders:id,parent_id,id,name')
$folders = Folder::with('folders:id,parent_id,id,name,team_folder')
->where('parent_id')
->where('team_folder', false)
->where('user_id', Auth::id())
->sortable()
->get(['id', 'parent_id', 'id', 'name']);
->get(['id', 'parent_id', 'id', 'name', 'team_folder']);
$teamFolders = Folder::with('folders:id,parent_id,id,name')
$teamFolders = Folder::with('folders:id,parent_id,id,name,team_folder')
->where('parent_id')
->where('team_folder', true)
->where('user_id', Auth::id())
@@ -13,7 +13,7 @@ class RenameFileOrFolderAction
public function __invoke(
RenameItemRequest $request,
string $id,
): FolderResource|FileResource|array {
) {
// Get item
$item = get_item($request->input('type'), $id);
@@ -23,11 +23,6 @@ class RenameFileOrFolderAction
'name' => $request->input('name'),
]);
if ($request->input('type') === 'folder') {
return new FolderResource($item);
}
// Return updated item
return new FileResource($item);
return $item;
}
}
@@ -5,7 +5,6 @@ use Auth;
use App\Http\Controllers\Controller;
use Domain\Files\Resources\FileResource;
use Domain\Folders\Resources\FolderResource;
use Illuminate\Database\Eloquent\Model;
use Domain\Items\Requests\RenameItemRequest;
use Domain\Items\Actions\RenameFileOrFolderAction;
use Domain\Folders\Actions\UpdateFolderPropertyAction;
@@ -36,7 +35,13 @@ class RenameFileOrFolderController extends Controller
($this->updateFolderProperty)($request, $id);
}
// Rename Item
return ($this->renameFileOrFolder)($request, $id);
$item = ($this->renameFileOrFolder)($request, $id);
if ($request->input('type') === 'folder') {
return new FolderResource($item);
}
// Return updated item
return new FileResource($item);
}
}
@@ -1,6 +1,9 @@
<?php
namespace Domain\Items\Controllers;
use Domain\Files\Resources\FileResource;
use Domain\Folders\Resources\FolderResource;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use App\Http\Controllers\Controller;
@@ -62,10 +65,15 @@ class VisitorRenameFileOrFolderController extends Controller
$item = ($this->renameFileOrFolder)($request, $id);
// Set public url
if ($item->type !== 'folder') {
if ($request->input('type') !== 'folder') {
$item->setPublicUrl($shared->token);
}
return response($item, 201);
if ($request->input('type') === 'folder') {
return response(new FolderResource($item), 201);
}
// Return updated item
return response(new FileResource($item), 201);
}
}
@@ -1,12 +1,12 @@
<?php
namespace Domain\Localization\Controllers;
use Domain\Localization\Resources\LanguageCollection;
use Domain\Localization\Resources\LanguageResource;
use Illuminate\Http\Response;
use Domain\Settings\Models\Setting;
use App\Http\Controllers\Controller;
use Domain\Localization\Models\Language;
use Domain\Teams\Resources\LanguageResource;
use Domain\Teams\Resources\LanguageCollection;
use Domain\Localization\Requests\CreateLanguageRequest;
use Domain\Localization\Requests\UpdateLanguageRequest;
@@ -1,9 +1,9 @@
<?php
namespace Domain\Sharing\Actions;
use Domain\Sharing\Notifications\SharedSendViaEmail;
use Spatie\QueueableAction\QueueableAction;
use Illuminate\Support\Facades\Notification;
use Domain\Teams\Notifications\SharedSendViaEmail;
class SendViaEmailAction
{
@@ -2,11 +2,14 @@
namespace Domain\Teams\Controllers;
use DB;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderCollection;
use Domain\Folders\Resources\FolderResource;
use Domain\Teams\Requests\CreateTeamFolderRequest;
use Domain\Teams\Requests\UpdateTeamFolderMembersRequest;
use Illuminate\Contracts\Routing\ResponseFactory;
use Domain\Files\Models\File;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Http\Response;
use Domain\Folders\Models\Folder;
@@ -29,7 +32,7 @@ class TeamFoldersController extends Controller
{
$isHomepage = $id === 'undefined';
$rootId = $id === 'undefined' ? null : $id;
$requestedFolder = $rootId ? Folder::findOrFail($rootId) : null;
$requestedFolder = $rootId ? new FolderResource(Folder::findOrFail($rootId)) : null;
$files = [];
$folders = Folder::with([
@@ -54,11 +57,9 @@ class TeamFoldersController extends Controller
// Collect folders and files to single array
return [
'content' => collect([
new FolderCollection($folders),
$files
])->collapse(),
'folder' => $requestedFolder,
'folders' => new FolderCollection($folders),
'files' => new FilesCollection($files),
'root' => $requestedFolder,
];
}