123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\NewRelicReporting\Model;
- /**
- * NewRelic configuration model
- */
- class Config
- {
- /**#@+
- * Names of parameters to be sent to database tables
- */
- const ORDER_ITEMS = 'lineItemCount';
- const ORDER_VALUE = 'orderValue';
- const ORDER_PLACED = 'Order';
- const ADMIN_USER_ID = 'adminId';
- const ADMIN_USER = 'adminUser';
- const ADMIN_NAME = 'adminName';
- const CUSTOMER_ID = 'customerId';
- const CUSTOMER_NAME = 'CustomerName';
- const CUSTOMER_COUNT = 'CustomerCount';
- const FLUSH_CACHE = 'systemCacheFlush';
- const STORE = 'store';
- const STORE_VIEW_COUNT = 'StoreViewCount';
- const WEBSITE = 'website';
- const WEBSITE_COUNT = 'WebsiteCount';
- const PRODUCT_CHANGE = 'adminProductChange';
- const PRODUCT_COUNT = 'productCatalogSize';
- const CONFIGURABLE_COUNT = 'productCatalogConfigurableSize';
- const ACTIVE_COUNT = 'productCatalogActiveSize';
- const CATEGORY_SIZE = 'productCatalogCategorySize';
- const CATEGORY_COUNT = 'CatalogCategoryCount';
- const ENABLED_MODULE_COUNT = 'enabledModuleCount';
- const MODULES_ENABLED = 'ModulesEnabled';
- const MODULES_DISABLED = 'ModulesDisabled';
- const MODULES_INSTALLED = 'ModulesInstalled';
- const MODULE_INSTALLED = 'moduleInstalled';
- const MODULE_UNINSTALLED = 'moduleUninstalled';
- const MODULE_ENABLED = 'moduleEnabled';
- const MODULE_DISABLED = 'moduleDisabled';
- /**#@-*/
- /**#@+
- * Text flags for states
- */
- const INSTALLED = 'installed';
- const UNINSTALLED = 'uninstalled';
- const ENABLED = 'enabled';
- const DISABLED = 'disabled';
- const TRUE = 'true';
- const FALSE = 'false';
- /**#@-*/
- /**#@-*/
- protected $scopeConfig;
- /**
- * @var \Magento\Framework\Encryption\EncryptorInterface
- */
- protected $encryptor;
- /**
- * @var \Magento\Config\Model\ResourceModel\Config
- */
- protected $resourceConfig;
- /**
- * Constructor
- *
- * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
- * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor
- * @param \Magento\Config\Model\ResourceModel\Config $resourceConfig
- */
- public function __construct(
- \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
- \Magento\Framework\Encryption\EncryptorInterface $encryptor,
- \Magento\Config\Model\ResourceModel\Config $resourceConfig
- ) {
- $this->scopeConfig = $scopeConfig;
- $this->encryptor = $encryptor;
- $this->resourceConfig = $resourceConfig;
- }
- /**
- * Returns module's enabled status
- *
- * @return bool
- */
- public function isNewRelicEnabled()
- {
- return $this->scopeConfig->isSetFlag('newrelicreporting/general/enable');
- }
- /**
- * Returns configured URL for API
- *
- * @return string
- */
- public function getNewRelicApiUrl()
- {
- return (string)$this->scopeConfig->getValue('newrelicreporting/general/api_url');
- }
- /**
- * Returns configured URL for Insights API
- *
- * @return string
- */
- public function getInsightsApiUrl()
- {
- return (string)$this->scopeConfig->getValue('newrelicreporting/general/insights_api_url');
- }
- /**
- * Returns configured account ID for New Relic
- *
- * @return string
- */
- public function getNewRelicAccountId()
- {
- return (string)$this->scopeConfig->getValue('newrelicreporting/general/account_id');
- }
- /**
- * Return configured NR Application ID
- *
- * @return int
- */
- public function getNewRelicAppId()
- {
- return (int)$this->scopeConfig->getValue('newrelicreporting/general/app_id');
- }
- /**
- * Returns configured API key for APM
- *
- * @return string
- */
- public function getNewRelicApiKey()
- {
- return $this->encryptor->decrypt($this->scopeConfig->getValue('newrelicreporting/general/api'));
- }
- /**
- * Returns configured Insights insert key for New Relic events related to cron jobs
- *
- * @return string
- */
- public function getInsightsInsertKey()
- {
- return $this->encryptor->decrypt($this->scopeConfig->getValue('newrelicreporting/general/insights_insert_key'));
- }
- /**
- * Returns configured NR Application name
- *
- * @return string
- */
- public function getNewRelicAppName()
- {
- return (string)$this->scopeConfig->getValue('newrelicreporting/general/app_name');
- }
- /**
- * Returns configured separate apps value
- *
- * @return bool
- */
- public function isSeparateApps()
- {
- return (bool)$this->scopeConfig->getValue('newrelicreporting/general/separate_apps');
- }
- /**
- * Returns config setting for overall cron to be enabled
- *
- * @return bool
- */
- public function isCronEnabled()
- {
- return $this->scopeConfig->isSetFlag('newrelicreporting/cron/enable_cron');
- }
- /**
- * Sets config value
- *
- * @param string $pathId
- * @param mixed $value
- * @param string $scope
- * @param int $scopeId
- * @return void
- */
- protected function setConfigValue($pathId, $value, $scope = 'default', $scopeId = 0)
- {
- $this->resourceConfig->saveConfig($pathId, $value, $scope, $scopeId);
- }
- /**
- * Disable module's functionality for case when new relic extension is not available
- *
- * @return void
- */
- public function disableModule()
- {
- $this->setConfigValue('newrelicreporting/general/enable', 0);
- }
- }
|