Added per page pagination config

This commit is contained in:
Constantin Graf
2024-04-26 15:14:28 +02:00
parent 1efd661d96
commit c25276b9a8
9 changed files with 37 additions and 9 deletions

View File

@@ -40,7 +40,7 @@ class ClientController extends Controller
$clients = Client::query() $clients = Client::query()
->whereBelongsTo($organization, 'organization') ->whereBelongsTo($organization, 'organization')
->orderBy('created_at', 'desc') ->orderBy('created_at', 'desc')
->paginate(); ->paginate(config('app.pagination_per_page_default'));
return new ClientCollection($clients); return new ClientCollection($clients);
} }

View File

@@ -40,7 +40,7 @@ class InvitationController extends Controller
$this->checkPermission($organization, 'invitations:view'); $this->checkPermission($organization, 'invitations:view');
$invitations = $organization->teamInvitations() $invitations = $organization->teamInvitations()
->paginate(); ->paginate(config('app.pagination_per_page_default'));
return InvitationCollection::make($invitations); return InvitationCollection::make($invitations);
} }

View File

@@ -45,7 +45,7 @@ class MemberController extends Controller
$this->checkPermission($organization, 'members:view'); $this->checkPermission($organization, 'members:view');
$members = $organization->users() $members = $organization->users()
->paginate(); ->paginate(config('app.pagination_per_page_default'));
return MemberCollection::make($members); return MemberCollection::make($members);
} }

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Http\Controllers\Api\V1; namespace App\Http\Controllers\Api\V1;
use App\Exceptions\Api\EntityStillInUseApiException; use App\Exceptions\Api\EntityStillInUseApiException;
use App\Http\Requests\V1\Project\ProjectIndexRequest;
use App\Http\Requests\V1\Project\ProjectStoreRequest; use App\Http\Requests\V1\Project\ProjectStoreRequest;
use App\Http\Requests\V1\Project\ProjectUpdateRequest; use App\Http\Requests\V1\Project\ProjectUpdateRequest;
use App\Http\Resources\V1\Project\ProjectCollection; use App\Http\Resources\V1\Project\ProjectCollection;
@@ -38,7 +39,7 @@ class ProjectController extends Controller
* *
* @operationId getProjects * @operationId getProjects
*/ */
public function index(Organization $organization): ProjectCollection public function index(Organization $organization, ProjectIndexRequest $request): ProjectCollection
{ {
$this->checkPermission($organization, 'projects:view'); $this->checkPermission($organization, 'projects:view');
$canViewAllProjects = $this->hasPermission($organization, 'projects:view:all'); $canViewAllProjects = $this->hasPermission($organization, 'projects:view:all');
@@ -52,7 +53,7 @@ class ProjectController extends Controller
$projectsQuery->visibleByUser($user); $projectsQuery->visibleByUser($user);
} }
$projects = $projectsQuery->paginate(); $projects = $projectsQuery->paginate(config('app.pagination_per_page_default'));
return new ProjectCollection($projects); return new ProjectCollection($projects);
} }

View File

@@ -46,7 +46,7 @@ class ProjectMemberController extends Controller
$projectMembers = ProjectMember::query() $projectMembers = ProjectMember::query()
->whereBelongsTo($project, 'project') ->whereBelongsTo($project, 'project')
->paginate(); ->paginate(config('app.pagination_per_page_default'));
return new ProjectMemberCollection($projectMembers); return new ProjectMemberCollection($projectMembers);
} }

View File

@@ -41,7 +41,7 @@ class TagController extends Controller
$tags = Tag::query() $tags = Tag::query()
->whereBelongsTo($organization, 'organization') ->whereBelongsTo($organization, 'organization')
->orderBy('created_at', 'desc') ->orderBy('created_at', 'desc')
->paginate(); ->paginate(config('app.pagination_per_page_default'));
return new TagCollection($tags); return new TagCollection($tags);
} }

View File

@@ -62,7 +62,7 @@ class TaskController extends Controller
}); });
} }
$tasks = $query->paginate(); $tasks = $query->paginate(config('app.pagination_per_page_default'));
return new TaskCollection($tasks); return new TaskCollection($tasks);
} }

View File

@@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
namespace App\Http\Requests\V1\Project;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class ProjectIndexRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, array<string|ValidationRule>>
*/
public function rules(): array
{
return [
'page' => [
'integer',
'min:1',
],
];
}
}

View File

@@ -115,6 +115,8 @@ return [
'faker_locale' => 'en_US', 'faker_locale' => 'en_US',
'pagination_per_page_default' => (int) env('PAGINATION_PER_PAGE_DEFAULT', 15),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Encryption Key | Encryption Key
@@ -191,5 +193,4 @@ return [
'aliases' => Facade::defaultAliases()->merge([ 'aliases' => Facade::defaultAliases()->merge([
// 'Example' => App\Facades\Example::class, // 'Example' => App\Facades\Example::class,
])->toArray(), ])->toArray(),
]; ];