Controller/Adminhtml/Ajax/ProductFeedUpload.php (38 lines of code) (raw):

<?php /** * Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved */ namespace Facebook\BusinessExtension\Controller\Adminhtml\Ajax; use Exception; use Facebook\BusinessExtension\Helper\FBEHelper; use Facebook\BusinessExtension\Model\Product\Feed\Uploader; use Magento\Backend\App\Action\Context; use Magento\Framework\Controller\Result\JsonFactory; class ProductFeedUpload extends AbstractAjax { /** * @var Uploader */ protected $uploader; public function __construct( Context $context, JsonFactory $resultJsonFactory, FBEHelper $fbeHelper, Uploader $uploader ) { parent::__construct($context, $resultJsonFactory, $fbeHelper); $this->uploader = $uploader; } public function executeForJson() { $response = []; if (!$this->_fbeHelper->getAccessToken()) { $response['success'] = false; $response['message'] = __('Set up the extension before uploading products.'); return $response; } try { $feedPushResponse = $this->uploader->uploadFullCatalog(); $response['success'] = true; $response['feed_push_response'] = $feedPushResponse; } catch (Exception $e) { $response['success'] = false; $response['message'] = $e->getMessage(); } return $response; } }