resultJsonFactory = $resultJsonFactory; $this->cacheTypeList = $cacheTypeList; $this->configInterface = $configInterface; $this->storeRepository = $storeRepository; $this->activeCampaignHelper = $activeCampaignHelper; $this->curl = $curl; } /** * Check for connection to server * * @return \Magento\Framework\Controller\Result\Json */ public function execute() { $request = $this->getRequest()->getParams(); $return = []; $return['success'] = false; if ($request['status'] && !empty($request['api_url']) && !empty($request['api_key'])) { try { if ((int)$request['store']) { $connectionId = $this->activeCampaignHelper->getConnectionId($request['store']); $urlEndpoint = self::URL_ENDPOINT . "/" . $connectionId; $result = $this->curl->deleteConnection(self::METHOD, $urlEndpoint); if ($result['success']) { $this->configInterface->deleteConfig( ActiveCampaignHelper::ACTIVE_CAMPAIGN_GENERAL_CONNECTION_ID, ScopeInterface::SCOPE_STORES, $request['store'] ); } else { $return['success'] = false; $return['errorMessage'] = $result['message']; } } elseif ($request['store'] == "0") { $stores = $this->storeRepository->getList(); foreach ($stores as $store) { if ($store->getId()) { $connectionId = $this->activeCampaignHelper->getConnectionId($store->getId()); $urlEndpoint = self::URL_ENDPOINT . "/" . $connectionId; $result = $this->curl->deleteConnection(self::METHOD, $urlEndpoint); if ($result['success']) { $this->configInterface->deleteConfig( ActiveCampaignHelper::ACTIVE_CAMPAIGN_GENERAL_CONNECTION_ID, ScopeInterface::SCOPE_STORES, $store->getId() ); } else { $return['success'] = false; $return['errorMessage'] = $result['message']; } } } } $allConnections = $this->curl->getAllConnections(self::GET_METHOD, self::URL_ENDPOINT); $checkConnections = $this->activeCampaignHelper->checkConnections($allConnections); $return['success'] = $checkConnections; } catch (\Exception $e) { $return['success'] = false; $return['errorMessage'] = __($e->getMessage()); } } if ($return['success'] === true) { $this->cacheTypeList->invalidate([ Config::TYPE_IDENTIFIER, Type::TYPE_IDENTIFIER ]); } $resultJson = $this->resultJsonFactory->create(); return $resultJson->setData($return); } }