api resource refactoring part 3

This commit is contained in:
Peter Papp
2021-08-27 11:01:44 +02:00
parent 174f2a2c1f
commit d299183ecd
16 changed files with 101 additions and 91 deletions

View File

@@ -2,12 +2,12 @@
namespace Domain\Browsing\Controllers;
use App\Users\Models\User;
use Illuminate\Support\Collection;
use Domain\Files\Resources\FilesCollection;
use Illuminate\Support\Facades\Auth;
class BrowseLatestFilesController
{
public function __invoke(): Collection
public function __invoke(): array
{
$user = User::with([
'latestUploads' => fn ($query) => $query->sortable(['created_at' => 'desc']),
@@ -15,6 +15,9 @@ class BrowseLatestFilesController
->where('id', Auth::id())
->first();
return $user->latestUploads;
return [
'files' => new FilesCollection($user->latestUploads),
'root' => null,
];
}
}

View File

@@ -2,14 +2,15 @@
namespace Domain\Browsing\Controllers;
use Domain\Files\Models\File;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderCollection;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Auth;
class BrowseSharedItemsController
{
public function __invoke(): Collection
public function __invoke(): array
{
$user_id = Auth::id();
@@ -36,7 +37,10 @@ class BrowseSharedItemsController
->get();
// Collect folders and files to single array
return collect([$folders, $files])
->collapse();
return [
'folders' => new FolderCollection($folders),
'files' => new FilesCollection($files),
'root' => null,
];
}
}

View File

@@ -2,7 +2,10 @@
namespace Domain\Browsing\Controllers;
use Domain\Files\Models\File;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Models\Folder;
use Domain\Folders\Resources\FolderCollection;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Support\Facades\Auth;
class BrowseTrashContentController
@@ -60,8 +63,9 @@ class BrowseTrashContentController
// Collect folders and files to single array
return [
'content' => collect([$folders, $files_trashed])->collapse(),
'folder' => $requestedFolder,
'folders' => new FolderCollection($folders),
'files' => new FilesCollection($files_trashed),
'root' => $requestedFolder,
];
}
}

View File

@@ -2,8 +2,9 @@
namespace Domain\Browsing\Controllers;
use Domain\Files\Models\File;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Collection;
use Domain\Folders\Resources\FolderCollection;
use Illuminate\Support\Facades\Auth;
use Domain\Items\Requests\SearchRequest;
@@ -11,7 +12,7 @@ class SearchFilesAndFoldersController
{
public function __invoke(
SearchRequest $request
): Collection {
): array {
$user_id = Auth::id();
$query = remove_accents(
@@ -19,17 +20,18 @@ class SearchFilesAndFoldersController
);
// Search files id db
$searched_files = File::search($query)
$files = File::search($query)
->where('user_id', $user_id)
->get();
$searched_folders = Folder::search($query)
$folders = Folder::search($query)
->where('user_id', $user_id)
->get();
// Collect folders and files to single array
return collect([$searched_folders, $searched_files])
->collapse()
->take(10);
return [
'folders' => new FolderCollection($folders),
'files' => new FilesCollection($files),
];
}
}

View File

@@ -2,10 +2,13 @@
namespace Domain\Browsing\Controllers;
use Domain\Files\Models\File;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderCollection;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
use Illuminate\Http\Resources\Json\ResourceCollection;
/**
* Browse shared folder
@@ -44,10 +47,10 @@ class VisitorBrowseFolderController
// Set thumbnail links for public files
$files->map(fn ($file) => $file->setPublicUrl($shared->token));
// Collect folders and files to single array
return [
'content' => collect([$folders, $files])->collapse(),
'folder' => $requestedFolder,
'folders' => new FolderCollection($folders),
'files' => new FilesCollection($files),
'root' => $requestedFolder,
];
}
}

View File

@@ -1,12 +1,13 @@
<?php
namespace Domain\Browsing\Controllers;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderCollection;
use Illuminate\Support\Arr;
use Illuminate\Http\Request;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Collection;
use App\Http\Controllers\Controller;
use Domain\Sharing\Actions\ProtectShareRecordAction;
@@ -23,7 +24,7 @@ class VisitorSearchFilesAndFoldersController extends Controller
public function __invoke(
Request $request,
Share $shared,
): Collection {
): array {
// Check ability to access protected share record
($this->protectShareRecord)($shared);
@@ -64,8 +65,9 @@ class VisitorSearchFilesAndFoldersController extends Controller
});
// Collect folders and files to single array
return collect([$folders, $files])
->collapse()
->take(10);
return [
'folders' => new FolderCollection($folders),
'files' => new FilesCollection($files),
];
}
}