Controller/Adminhtml/Ajax/Fbfeedpush.php (59 lines of code) (raw):

<?php /** * Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved */ namespace Facebook\BusinessExtension\Controller\Adminhtml\Ajax; use Facebook\BusinessExtension\Model\Product\Feed\Method\BatchApi; class Fbfeedpush extends AbstractAjax { /** * @var BatchApi */ protected $batchApi; public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory, \Facebook\BusinessExtension\Helper\FBEHelper $helper, BatchApi $batchApi ) { parent::__construct($context, $resultJsonFactory, $helper); $this->batchApi = $batchApi; } public function executeForJson() { $response = []; $external_business_id = $this->_fbeHelper->getConfigValue('fbe/external/id'); $this->_fbeHelper->log("Existing external business id --- ". $external_business_id); if ($external_business_id) { $response['success'] = false; $response['message'] = 'One time feed push is completed at the time of setup'; return $response; } try { /* even the rest code failed, we should store external business id and catalog id, because user can push feed sync button in configuration*/ $access_token = $this->getRequest()->getParam('accessToken'); $external_business_id = $this->getRequest()->getParam('externalBusinessId'); $this->saveExternalBusinessId($external_business_id); $catalog_id = $this->getRequest()->getParam('catalogId'); $this->saveCatalogId($catalog_id); if ($access_token) { $feed_push_response = $this->batchApi->generateProductRequestData($access_token); $response['success'] = true; $response['feed_push_response'] = $feed_push_response; return $response; } } catch (\Exception $e) { $response['success'] = false; $response['message'] = $e->getMessage(); $this->_fbeHelper->logException($e); return $response; } } public function saveCatalogId($catalog_id) { if ($catalog_id != null) { $this->_fbeHelper->saveConfig('fbe/catalog/id', $catalog_id); $this->_fbeHelper->log("Catalog id saved on instance --- ". $catalog_id); } } public function saveExternalBusinessId($external_business_id) { if ($external_business_id != null) { $this->_fbeHelper->saveConfig('fbe/external/id', $external_business_id); $this->_fbeHelper->log("External business id saved on instance --- ". $external_business_id); } } }