Your IP : 216.73.216.52


Current Path : /home/rtorresani/www/app/code/Webkul/BuyButton/Controller/Adminhtml/Index/
Upload File :
Current File : //home/rtorresani/www/app/code/Webkul/BuyButton/Controller/Adminhtml/Index/ProductList.php

<?php
/**
 * Webkul Software.
 *
 * @category  Webkul
 * @package   Webkul_BuyButton
 * @author    Webkul
 * @copyright Copyright (c)  Webkul Software Private Limited (https://webkul.com)
 * @license   https://store.webkul.com/license.html
 */

namespace Webkul\BuyButton\Controller\Adminhtml\Index;

use Magento\Framework\Controller\ResultFactory;

class ProductList extends AbstractBuyButton
{

    /**
     * @inheritDoc
     */
    public function execute()
    {
        $pageSize = $this->getRequest()->getParam('pageSize');
        $curPage = $this->getRequest()->getParam('pageNumber');
        $sort = $this->getRequest()->getParam('sort');
        $filter = $this->getRequest()->getParam('filter');
        $type = $this->getRequest()->getParam('type');
        $creteriaBuilder = $this->buyButtonHelper->getCreteriaBuilder();
        if (!$type || $type == 'all') {
            $creteriaBuilder->addFilter(
                'type_id',
                ['simple', 'virtual', 'configurable'],
                'in'
            );
        } elseif (in_array($type, ['simple', 'virtual', 'configurable'])) {
            $creteriaBuilder->addFilter(
                'type_id',
                $type,
                'eq'
            );
        } else {
            $creteriaBuilder->addFilter(
                'type_id',
                ['simple', 'virtual', 'configurable'],
                'in'
            );
        }
        $creteriaBuilder->addFilter(
            'visibility',
            1,
            'neq'
        );
        $creteriaBuilder->addFilter(
            'status',
            1,
            'eq'
        );
        if ($filter) {
            $creteriaBuilder->addFilter(
                'name',
                '%'.$filter.'%',
                'like'
            );
        }
        $creteria = $creteriaBuilder
        ->setPageSize($pageSize)
        ->setCurrentPage($curPage)
        ->create();
        $products = $this->_productRepository->getList($creteria);

        $data = $this->_objectManager->get(\Magento\Framework\Webapi\ServiceOutputProcessor::class)
        ->convertValue($products, \Magento\Catalog\Api\Data\ProductSearchResultsInterface::class);

        return $this->resultFactory->create(ResultFactory::TYPE_JSON)->setData($data);
    }
}