Skip to content

Commit

Permalink
Used api to retrieve settings
Browse files Browse the repository at this point in the history
  • Loading branch information
pradpnayak committed Apr 18, 2017
1 parent 5f792e0 commit e26b8b3
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 20 deletions.
4 changes: 2 additions & 2 deletions CRM/Mailchimp/Form/Pull.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class CRM_Mailchimp_Form_Pull extends CRM_Core_Form {
function preProcess() {
$state = CRM_Utils_Request::retrieve('state', 'String', CRM_Core_DAO::$_nullObject, FALSE, 'tmp', 'GET');
if ($state == 'done') {
$stats = CRM_Core_BAO_Setting::getItem(CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'pull_stats');
$stats = CRM_Mailchimp_Utils::getSettingValue('pull_stats');

$groups = CRM_Mailchimp_Utils::getGroupsToSync(array(), null, $membership_only=TRUE);
if (!$groups) {
Expand Down Expand Up @@ -283,7 +283,7 @@ public static function syncPullFromMailchimp(CRM_Queue_TaskContext $ctx, $listID
* Update the pull stats setting.
*/
public static function updatePullStats($updates) {
$stats = CRM_Core_BAO_Setting::getItem(CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'pull_stats');
$stats = CRM_Mailchimp_Utils::getSettingValue('pull_stats');
foreach ($updates as $list_id=>$settings) {
if ($list_id == 'dry_run') {
continue;
Expand Down
12 changes: 3 additions & 9 deletions CRM/Mailchimp/Form/Setting.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,17 +85,11 @@ public function buildQuickForm() {
public function setDefaultValues() {
$defaults = $details = array();

$apiKey = CRM_Core_BAO_Setting::getItem(self::MC_SETTING_GROUP,
'api_key', NULL, FALSE
);
$apiKey = CRM_Mailchimp_Utils::getSettingValue('api_key');

$securityKey = CRM_Core_BAO_Setting::getItem(self::MC_SETTING_GROUP,
'security_key', NULL, FALSE
);
$securityKey = CRM_Mailchimp_Utils::getSettingValue('security_key');

$enableDebugging = CRM_Core_BAO_Setting::getItem(self::MC_SETTING_GROUP,
'enable_debugging', NULL, FALSE
);
$enableDebugging = CRM_Mailchimp_Utils::getSettingValue('enable_debugging');
$defaults['api_key'] = $apiKey;
$defaults['security_key'] = $securityKey;
$defaults['enable_debugging'] = $enableDebugging;
Expand Down
4 changes: 2 additions & 2 deletions CRM/Mailchimp/Form/Sync.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class CRM_Mailchimp_Form_Sync extends CRM_Core_Form {
function preProcess() {
$state = CRM_Utils_Request::retrieve('state', 'String', CRM_Core_DAO::$_nullObject, FALSE, 'tmp', 'GET');
if ($state == 'done') {
$stats = CRM_Core_BAO_Setting::getItem(CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'push_stats');
$stats = CRM_Mailchimp_Utils::getSettingValue('pull_stats');
$groups = CRM_Mailchimp_Utils::getGroupsToSync(array(), null, $membership_only=TRUE);
if (!$groups) {
return;
Expand Down Expand Up @@ -323,7 +323,7 @@ public static function syncPushToMailchimp(CRM_Queue_TaskContext $ctx, $listID,
public static function updatePushStats($updates) {
CRM_Mailchimp_Utils::checkDebug('Start-CRM_Mailchimp_Form_Sync updatePushStats $updates= ', $updates);

$stats = CRM_Core_BAO_Setting::getItem(CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'push_stats');
$stats = CRM_Mailchimp_Utils::getSettingValue('pull_stats');
foreach ($updates as $listId=>$settings) {
if ($listId == 'dry_run') {
continue;
Expand Down
2 changes: 1 addition & 1 deletion CRM/Mailchimp/IntegrationTestBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ public static function createCiviCrmFixtures() {
//

// Ensure we have a security key configured.
$key = CRM_Core_BAO_Setting::getItem(CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'security_key', NULL, FALSE);
$key = CRM_Mailchimp_Utils::getSettingValue('security_key');
if (!$key) {
// Create a random key.
CRM_Core_BAO_Setting::setItem( md5(time() . 'Something unique'), CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'security_key');
Expand Down
2 changes: 1 addition & 1 deletion CRM/Mailchimp/Page/WebHook.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public function run() {
CRM_Mailchimp_Utils::checkDebug("Webhook POST: " . serialize($_POST));
// Empty response object, default response code.
try {
$expected_key = CRM_Core_BAO_Setting::getItem(self::MC_SETTING_GROUP, 'security_key', NULL, FALSE);
$expected_key = CRM_Mailchimp_Utils::getSettingValue('security_key');
$given_key = isset($_GET['key']) ? $_GET['key'] : null;
list($response_code, $response_object) = $this->processRequest($expected_key, $given_key, $_POST);
CRM_Mailchimp_Utils::checkDebug("Webhook response code $response_code (200 = ok)");
Expand Down
27 changes: 22 additions & 5 deletions CRM/Mailchimp/Utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public static function splitGroupTitlesFromMailchimp($group_input, $group_detail
* Returns the webhook URL.
*/
public static function getWebhookUrl() {
$security_key = CRM_Core_BAO_Setting::getItem(self::MC_SETTING_GROUP, 'security_key', NULL, FALSE);
$security_key = self::getSettingValue('security_key');
if (empty($security_key)) {
// @Todo what exception should this throw?
throw new InvalidArgumentException("You have not set a security key for your Mailchimp integration. Please do this on the settings page at civicrm/mailchimp/settings");
Expand Down Expand Up @@ -158,8 +158,8 @@ public static function getMailchimpApi($reset=FALSE) {

// Singleton pattern.
if (!isset(static::$mailchimp_api)) {
$params = ['api_key' => CRM_Core_BAO_Setting::getItem(CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'api_key')];
$debugging = CRM_Core_BAO_Setting::getItem(self::MC_SETTING_GROUP, 'enable_debugging', NULL, FALSE);
$params = ['api_key' => self::getSettingValue('security_key')];
$debugging = self::getSettingValue('enable_debugging');
if ($debugging == 1) {
// We want debugging. Inject a logging callback.
$params['log_facility'] = function($message) {
Expand Down Expand Up @@ -603,7 +603,7 @@ public static function getMailchimpGroupIdFromName($listID, $groupName) {
* Log a message and optionally a variable, if debugging is enabled.
*/
public static function checkDebug($description, $variable='VARIABLE_NOT_PROVIDED') {
$debugging = CRM_Core_BAO_Setting::getItem(self::MC_SETTING_GROUP, 'enable_debugging', NULL, FALSE);
$debugging = self::getSettingValue('enable_debugging');

if ($debugging == 1) {
if ($variable === 'VARIABLE_NOT_PROVIDED') {
Expand All @@ -625,10 +625,27 @@ public static function checkDebug($description, $variable='VARIABLE_NOT_PROVIDED
* deprecated (soon!) v1, v2 API
*/
public static function mailchimp() {
$apiKey = CRM_Core_BAO_Setting::getItem(CRM_Mailchimp_Form_Setting::MC_SETTING_GROUP, 'api_key');
$apiKey = self::getSettingValue('api_key');
$mcClient = new Mailchimp($apiKey);
//CRM_Mailchimp_Utils::checkDebug('Start-CRM_Mailchimp_Utils mailchimp $mcClient', $mcClient);
return $mcClient;
}

/**
* Function retrieve values from civicrm_setting using api.
*
* @param string $settingName
*/
public static function getSettingValue($settingName) {
try {
$setting = civicrm_api3('Setting', 'getSingle', array(
'return' => $settingName,
));
return CRM_Utils_Array::value($settingName, $setting);
}
catch (CiviCRM_API3_Exception $e) {
return NULL;
}
}

}

0 comments on commit e26b8b3

Please sign in to comment.