Skip to content

Commit

Permalink
Missing resolver added
Browse files Browse the repository at this point in the history
  • Loading branch information
rogyar committed Nov 8, 2018
1 parent f9acb65 commit 9aacf0e
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public function resolve(
'eq' => $value['id']
]
];
$searchCriteria = $this->searchCriteriaBuilder->build($field->getName(), $args);
$searchCriteria = $this->searchCriteriaBuilder->build($field->getName(), $args);
$searchCriteria->setCurrentPage($args['currentPage']);
$searchCriteria->setPageSize($args['pageSize']);
$searchResult = $this->filterQuery->getResult($searchCriteria, $info);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);

namespace Magento\CatalogGraphQl\Model\Resolver\Category;

use Magento\Catalog\Model\Category;
use Magento\Catalog\Model\Product\Visibility;
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessor\StockProcessor;
use Magento\Framework\Api\SearchCriteriaInterface;
use Magento\Framework\GraphQl\Exception\GraphQlInputException;
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
use Magento\Framework\GraphQl\Config\Element\Field;
use Magento\Framework\GraphQl\Query\ResolverInterface;

/**
* Retrieves products count for a category
*/
class ProductsCount implements ResolverInterface
{
/**
* @var Visibility
*/
private $catalogProductVisibility;

/**
* @var StockProcessor
*/
private $stockProcessor;

/**
* @var SearchCriteriaInterface
*/
private $searchCriteria;

/**
* @param Visibility $catalogProductVisibility
* @param SearchCriteriaInterface $searchCriteria
* @param StockProcessor $stockProcessor
*/
public function __construct(
Visibility $catalogProductVisibility,
SearchCriteriaInterface $searchCriteria,
StockProcessor $stockProcessor
) {
$this->catalogProductVisibility = $catalogProductVisibility;
$this->searchCriteria = $searchCriteria;
$this->stockProcessor = $stockProcessor;
}

/**
* @inheritdoc
*/
public function resolve(Field $field, $context, ResolveInfo $info, array $value = null, array $args = null)
{
if (!isset($value['model'])) {
throw new GraphQlInputException(__('"model" value should be specified'));
}
/** @var Category $category */
$category = $value['model'];
$productsCollection = $category->getProductCollection();
$productsCollection->setVisibility($this->catalogProductVisibility->getVisibleInSiteIds());
$productsCollection = $this->stockProcessor->process($productsCollection, $this->searchCriteria, []);

return $productsCollection->getSize();
}
}

0 comments on commit 9aacf0e

Please sign in to comment.