added test for getRecordsCount, format code

This commit is contained in:
Milos Holba
2022-05-02 18:21:20 +02:00
parent ad8793ce28
commit f75c20e5a7
24 changed files with 147 additions and 102 deletions
+1 -1
View File
@@ -1,8 +1,8 @@
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Schema;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
@@ -1,5 +1,4 @@
<?php
namespace App\Socialite\Controllers;
use App\Users\Models\User;
@@ -8,15 +7,16 @@ use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;
use App\Users\Actions\CreateNewUserAction;
use Illuminate\Contracts\Auth\StatefulGuard;
use VueFileManager\Subscription\Domain\Plans\Exceptions\MeteredBillingPlanDoesntExist;
use VueFileManager\Subscription\Domain\Plans\Models\Plan;
use VueFileManager\Subscription\Domain\Plans\Exceptions\MeteredBillingPlanDoesntExist;
class SocialiteCallbackController extends Controller
{
public function __construct(
protected StatefulGuard $guard,
protected StatefulGuard $guard,
public CreateNewUserAction $createNewUser,
) {}
) {
}
/**
* @throws MeteredBillingPlanDoesntExist
@@ -60,7 +60,7 @@ class SocialiteCallbackController extends Controller
}
// Check if account registration is enabled
if (!$isAllowedRegistration) {
if (! $isAllowedRegistration) {
return response([
'type' => 'error',
'message' => 'User registration is not allowed',
+2 -3
View File
@@ -1,10 +1,9 @@
<?php
namespace App\Users\Actions;
use App\Users\Rules\PasswordValidationRules;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use App\Users\Rules\PasswordValidationRules;
use Laravel\Fortify\Contracts\UpdatesUserPasswords;
class UpdateUserPassword implements UpdatesUserPasswords
@@ -25,7 +24,7 @@ class UpdateUserPassword implements UpdatesUserPasswords
'current_password' => ['required', 'string'],
'password' => $this->passwordRules(),
])->after(function ($validator) use ($user, $input) {
if (!isset($input['current_password']) || !Hash::check($input['current_password'], $user->password)) {
if (! isset($input['current_password']) || ! Hash::check($input['current_password'], $user->password)) {
$validator->errors()->add('current_password', __t('password_doesnt_match'));
}
})->validateWithBag('updatePassword');
@@ -5,7 +5,9 @@ use Str;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Auth;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderResource;
use Domain\Folders\Resources\FolderCollection;
class BrowseFolderController
{
@@ -18,16 +20,16 @@ class BrowseFolderController
'parent_id' => $root_id,
'team_folder' => false,
'user_id' => Auth::id(),
'deleted_at' => null
'deleted_at' => null,
];
$fileQuery = [
'parent_id' => $root_id,
'user_id' => Auth::id(),
'deleted_at' => null
'deleted_at' => null,
];
list($foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount) = getRecordsCount($folderQuery, $fileQuery);
list($foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount) = getRecordsCount($folderQuery, $fileQuery, request()->input('page'));
$folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
->where($folderQuery)
@@ -42,16 +44,21 @@ class BrowseFolderController
->skip($filesSkip)
->take($filesTake)
->get();
$entries = collect([
$folders ? json_decode((new FolderCollection($folders))->toJson(), true) : null,
$files ? json_decode((new FilesCollection($files))->toJson(), true) : null,
])->collapse();
list($data, $paginate, $links) = groupPaginate($folders, $files, $totalItemsCount);
list($paginate, $links) = generatePaginationCounts($totalItemsCount);
return [
'data' => $data,
'data' => $entries,
'links' => $links,
'meta' => [
'paginate' => $paginate,
'root' => $root_id ? new FolderResource(Folder::findOrFail($root_id)) : null,
]
],
];
}
}
@@ -2,8 +2,8 @@
namespace Domain\Browsing\Controllers;
use App\Users\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class BrowseLatestFilesController
{
@@ -23,7 +23,7 @@ class BrowseLatestFilesController
'meta' => [
'paginate' => $paginate,
'root' => null,
]
],
];
}
}
@@ -1,11 +1,11 @@
<?php
namespace Domain\Browsing\Controllers;
use Illuminate\Http\Request;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
class BrowseSharedItemsController
{
@@ -44,7 +44,7 @@ class BrowseSharedItemsController
'meta' => [
'paginate' => $paginate,
'root' => null,
]
],
];
}
}
@@ -1,10 +1,10 @@
<?php
namespace Domain\Browsing\Controllers;
use Illuminate\Http\Request;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
class BrowseTrashContentController
{
@@ -27,14 +27,12 @@ class BrowseTrashContentController
->where('parent_id', $root_id)
->sortable()
->get();
} else {
// Get folders and files
$folders_trashed = Folder::onlyTrashed()
->with(['trashedFolders', 'parent'])
->where('user_id', $user_id)
->get(['parent_id', 'id', 'name']);
->with(['trashedFolders', 'parent'])
->where('user_id', $user_id)
->get(['parent_id', 'id', 'name']);
$folders = Folder::onlyTrashed()
->with(['parent'])
@@ -64,7 +62,7 @@ class BrowseTrashContentController
'meta' => [
'paginate' => $paginate,
'root' => $requestedFolder,
]
],
];
}
}
@@ -1,13 +1,13 @@
<?php
namespace Domain\Browsing\Controllers;
use Illuminate\Http\Request;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Domain\Folders\Resources\FolderResource;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
use Illuminate\Http\Request;
/**
* Browse shared folder
@@ -56,7 +56,7 @@ class VisitorBrowseFolderController
'meta' => [
'paginate' => $paginate,
'root' => new FolderResource($requestedFolder),
]
],
];
}
}
@@ -19,7 +19,6 @@ class GenerateImageThumbnailAction
collect(config("vuefilemanager.image_sizes.$execution"))
->each(function ($size) use ($userId, $fileName, $imageWidth) {
if ($imageWidth > $size['size']) {
// Create intervention image
$intervention = Image::make(
Storage::disk('local')->path("temp/$userId/$fileName")
@@ -2,7 +2,6 @@
namespace Domain\Files\Controllers;
use Domain\Files\Models\File;
use Illuminate\Http\Response;
use App\Http\Controllers\Controller;
use Domain\Files\Requests\UploadRequest;
use Domain\Files\Resources\FileResource;
@@ -21,7 +20,8 @@ class UploadFileController extends Controller
/**
* Upload file for authenticated master|editor user
*/
public function __invoke(UploadRequest $request) {
public function __invoke(UploadRequest $request)
{
if (is_demo_account()) {
return ($this->fakeUploadFile)($request);
}
@@ -1,5 +1,4 @@
<?php
namespace Domain\Files\Requests;
use Domain\Admin\Rules\DisabledMimetypes;
@@ -1,10 +1,10 @@
<?php
namespace Domain\Items\Controllers;
use App\Http\Controllers\Controller;
use Domain\Files\Models\File;
use Domain\Files\Resources\FileResource;
use Domain\Folders\Models\Folder;
use App\Http\Controllers\Controller;
use Domain\Files\Resources\FileResource;
use Domain\Folders\Resources\FolderResource;
use Domain\Items\Requests\RenameItemRequest;
use Domain\Items\Actions\RenameFileOrFolderAction;
@@ -3,7 +3,6 @@ namespace Domain\SetupWizard\Controllers;
use Artisan;
use App\Users\Models\User;
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
use Illuminate\Http\Response;
use Domain\Settings\Models\Setting;
use App\Http\Controllers\Controller;
@@ -12,6 +11,7 @@ use Domain\Pages\Actions\SeedDefaultPagesAction;
use Domain\Settings\Actions\SeedDefaultSettingsAction;
use Domain\SetupWizard\Requests\StoreAdminAccountRequest;
use Domain\Localization\Actions\SeedDefaultLanguageAction;
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
/**
* Create and login admin account
@@ -53,8 +53,8 @@ class BrowseSharedWithMeController
'links' => $links,
'meta' => [
'paginate' => $paginate,
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null
]
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null,
],
];
}
}
@@ -61,7 +61,7 @@ class TeamFoldersController extends Controller
'meta' => [
'paginate' => $paginate,
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null,
]
],
];
}
@@ -61,7 +61,7 @@ class InvitationIntoTeamFolder extends Notification implements ShouldQueue
return [
'category' => 'team-invitation',
'title' => __t('new_team_invitation'),
'description' => __t('x_invite_to_join_team', ['name' => $this->invitation->inviter->settings->name,]),
'description' => __t('x_invite_to_join_team', ['name' => $this->invitation->inviter->settings->name, ]),
'action' => [
'type' => 'invitation',
'params' => [
@@ -1,5 +1,4 @@
<?php
namespace Domain\UploadRequest\Notifications;
use Illuminate\Bus\Queueable;
@@ -19,7 +18,8 @@ class UploadRequestFulfilledNotification extends Notification implements ShouldQ
*/
public function __construct(
public UploadRequest $uploadRequest
) {}
) {
}
/**
* Get the notification's delivery channels.
@@ -50,7 +50,7 @@ class UploadRequestFulfilledNotification extends Notification implements ShouldQ
return [
'category' => 'file-request',
'title' => __t('file_request_filled'),
'description' => __t('file_request_filled_desc', ['name' => $this->uploadRequest->parent->name,]),
'description' => __t('file_request_filled_desc', ['name' => $this->uploadRequest->parent->name, ]),
'action' => [
'type' => 'route',
'params' => [
+25 -38
View File
@@ -9,15 +9,13 @@ use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Collection;
use Domain\Settings\Models\Setting;
use Illuminate\Support\Facades\DB;
use Domain\Settings\Models\Setting;
use Illuminate\Support\Facades\Http;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Storage;
use Domain\Localization\Models\Language;
use Domain\Files\Resources\FilesCollection;
use Domain\Folders\Resources\FolderCollection;
use Intervention\Image\ImageManagerStatic as Image;
use Illuminate\Database\Eloquent\ModelNotFoundException;
@@ -1152,30 +1150,20 @@ if (! function_exists('replace_occurrence')) {
}
}
if(! function_exists('groupPaginate')) {
if (! function_exists('generatePaginationCounts')) {
/**
* Group paginate of Foldes and Files
*/
function groupPaginate(
?Collection $folders = null,
?Collection $files = null,
function generatePaginationCounts(
int $totalItemsCount
) : array {
$perPage = config('vuefilemanager.paginate.perPage');
$currentPage = request()->input('page') === 'all' ? 1 : (int)request()->input('page');
// Collect Folders with Files
$entries = collect([
$folders ? json_decode((new FolderCollection($folders))->toJson(), true) : null,
$files ? json_decode((new FilesCollection($files))->toJson(), true) : null,
])->collapse();
$currentPage = request()->input('page') === 'all' ? 1 : (int) request()->input('page');
$uri = request()->fullUrl();
$lastPage = ceil($totalItemsCount / $perPage);
return [
$entries,
[
'currentPage' => $currentPage,
'from' => 1,
@@ -1188,28 +1176,29 @@ if (! function_exists('replace_occurrence')) {
[
'first' => $uri . '&page=' . 1,
'last' => $uri . '&page=' . $lastPage,
'next' => $currentPage == $lastPage ? null : $uri . '&page=' . $currentPage + 1,
'prev' => $currentPage == 1 ? null : $uri . '&page=' . $currentPage -1,
]
'next' => $currentPage == $lastPage ? null : $uri . '&page=' . $currentPage + 1,
'prev' => $currentPage == 1 ? null : $uri . '&page=' . $currentPage - 1,
],
];
}
if(! function_exists('getRecordsCount')) {
}
if (! function_exists('getRecordsCount')) {
/**
* Get count of items from the Database
*/
function getRecordsCount (
array $folderQuery,
array $fileQuery
) : array {
function getRecordsCount(
array $folderQuery,
array $fileQuery,
string $page
) : array {
$perPage = config('vuefilemanager.paginate.perPage');
$currentPage = request()->input('page') === 'all' ? 1 : (int)request()->input('page');
$currentPage = $page === 'all' ? 1 : (int) $page;
$foldersSkip = 0;
$foldersTake = 0;
$filesSkip = 0;
$filesTake = 0;
$filesSkip = 0;
$filesTake = 0;
$foldersCount = DB::table('folders')
->where($folderQuery)
@@ -1221,34 +1210,32 @@ if (! function_exists('replace_occurrence')) {
$totalItemsCount = $foldersCount + $filesCount;
if(request()->input('page') !== 'all') {
if ($page !== 'all') {
// Folders pages
if($foldersCount >= $currentPage * $perPage) {
if ($foldersCount >= $currentPage * $perPage) {
$foldersTake = $perPage;
$foldersSkip = ($currentPage - 1) * $perPage;
}
// Mixed page
if($foldersCount < $currentPage * $perPage && ceil($currentPage) === ceil($foldersCount / $perPage) ) {
if ($foldersCount < $currentPage * $perPage && ceil($currentPage) === ceil($foldersCount / $perPage)) {
$foldersSkip = ($currentPage - 1) * $perPage;
$foldersTake = $foldersCount - $foldersSkip;
$filesTake = ($currentPage * $perPage) - $foldersCount;
$filesTake = ($currentPage * $perPage) - $foldersCount;
$filesSkip = 0;
}
// Files pages
if($currentPage > ceil($foldersCount / $perPage)) {
if ($currentPage > ceil($foldersCount / $perPage)) {
$filesTake = $perPage;
$filesSkip = ((ceil($foldersCount / $perPage) * $perPage) - $foldersCount) + ($currentPage - (ceil($foldersCount / $perPage)) -1) * $perPage;
$filesSkip = ((ceil($foldersCount / $perPage) * $perPage) - $foldersCount) + ($currentPage - (ceil($foldersCount / $perPage)) - 1) * $perPage;
}
} else {
$foldersTake = $foldersCount;
$filesTake = $filesCount;
$filesTake = $filesCount;
}
return [$foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount];
}
}
}
}