Model/System/Config.php (58 lines of code) (raw):
<?php
/**
* Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved
*/
namespace Facebook\BusinessExtension\Model\System;
use Magento\Config\Model\ResourceModel\Config as ResourceConfig;
use Magento\Framework\App\Cache\TypeListInterface;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Store\Model\StoreManagerInterface;
class Config
{
const XML_PATH_FACEBOOK_COLLECTIONS_SYNC_IS_ACTIVE = 'facebook/catalog_management/collections_sync';
const XML_PATH_FACEBOOK_CATALOG_SYNC_IS_ACTIVE = 'facebook/catalog_management/catalog_sync';
const XML_PATH_FACEBOOK_OUT_OF_STOCK_THRESHOLD = 'facebook/inventory_management/out_of_stock_threshold';
/**
* @var StoreManagerInterface
*/
private $storeManager;
/**
* @var ScopeConfigInterface
*/
private $scopeConfig;
/**
* @var ResourceConfig
*/
private $resourceConfig;
/**
* @var TypeListInterface
*/
private $cacheTypeList;
/**
* @method __construct
* @param StoreManagerInterface $storeManager
* @param ScopeConfigInterface $scopeConfig
* @param ResourceConfig $resourceConfig
* @param TypeListInterface $cacheTypeList
*/
public function __construct(
StoreManagerInterface $storeManager,
ScopeConfigInterface $scopeConfig,
ResourceConfig $resourceConfig,
TypeListInterface $cacheTypeList
) {
$this->storeManager = $storeManager;
$this->scopeConfig = $scopeConfig;
$this->resourceConfig = $resourceConfig;
$this->cacheTypeList = $cacheTypeList;
}
/**
* @method isSingleStoreMode
* @return bool
*/
public function isSingleStoreMode()
{
return $this->storeManager->isSingleStoreMode();
}
/**
* @param $path
* @param $value
* @return $this
*/
public function saveConfig($path, $value)
{
$this->resourceConfig->saveConfig($path, $value);
return $this;
}
/**
* @param $path
* @return $this
*/
public function deleteConfig($path)
{
$this->resourceConfig->deleteConfig($path);
return $this;
}
/**
* @return $this
*/
public function cleanCache()
{
$this->cacheTypeList->cleanType(\Magento\Framework\App\Cache\Type\Config::TYPE_IDENTIFIER);
return $this;
}
/**
* @return bool
*/
public function isActiveCollectionsSync()
{
return $this->scopeConfig->isSetFlag(self::XML_PATH_FACEBOOK_COLLECTIONS_SYNC_IS_ACTIVE);
}
/**
* @return bool
*/
public function isActiveCatalogSync()
{
return $this->scopeConfig->isSetFlag(self::XML_PATH_FACEBOOK_CATALOG_SYNC_IS_ACTIVE);
}
/**
* @return mixed
*/
public function getOutOfStockThreshold()
{
return $this->scopeConfig->getValue(self::XML_PATH_FACEBOOK_OUT_OF_STOCK_THRESHOLD);
}
}