diff --git a/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php b/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php index e287be605b..97587477cb 100644 --- a/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php +++ b/vendor/magento/module-company-graph-ql/Model/Resolver/Company/Roles.php @@ -120,6 +120,8 @@ class Roles implements ResolverInterface ->setPageSize($args['pageSize']) ->setCurPage($args['currentPage']); + $companyRolesTotalCount = $companyRoles->getSize(); + $companyRoleItems = []; foreach ($companyRoles as $companyRole) { @@ -135,14 +137,25 @@ class Roles implements ResolverInterface } $pageSize = $companyRoles->getPageSize(); + $currentPage = $companyRoles->getCurPage(); + $totalPages = $companyRolesTotalCount ? ceil($companyRolesTotalCount / $pageSize) : 0; + + if ($currentPage > $totalPages) { + throw new GraphQlInputException( + __( + 'currentPage value %1 specified is greater than the %2 page(s) available.', + [$currentPage, $totalPages] + ) + ); + } return [ 'items' => $companyRoleItems, - 'total_count' => $companyRoles->count(), + 'total_count' => $companyRolesTotalCount, 'page_info' => [ 'page_size' => $pageSize, - 'current_page' => $companyRoles->getCurPage(), - 'total_pages' => $pageSize ? ((int)ceil($companyRoles->count() / $pageSize)) : 0, + 'current_page' => $currentPage, + 'total_pages' => $totalPages, ] ]; }