/** * Save Mailchimp sync settings. */ static function saveSettings($params) { $transaction = new CRM_Core_Transaction(); try { $existing_mailchimp_sync_setting = self::findByGroupId($params['civicrm_group_id']); if ($existing_mailchimp_sync_setting) { $params['id'] = $existing_mailchimp_sync_setting->id; CRM_CiviMailchimp_BAO_InterestGroupsSyncSettings::deleteAllForSyncSettingsId($existing_mailchimp_sync_setting->id); } $mailchimp_sync_setting = new CRM_CiviMailchimp_BAO_SyncSettings(); $mailchimp_sync_setting->copyValues($params); $mailchimp_sync_setting->save(); if (isset($params['mailchimp_interest_groups'])) { CRM_CiviMailchimp_BAO_InterestGroupsSyncSettings::saveSettings($mailchimp_sync_setting, $params['mailchimp_interest_groups']); } if (!$existing_mailchimp_sync_setting) { CRM_CiviMailchimp_Utils::addWebhookToMailchimpList($mailchimp_sync_setting->mailchimp_list_id); } } catch (Exception $e) { $transaction->rollback(); throw $e; } $transaction->commit(); return $mailchimp_sync_setting; }
function testAddWebhookToMailchimpListInvalidList() { $result = CRM_CiviMailchimp_Utils::addWebhookToMailchimpList('MailchimpListsTestListB'); $this->assertEquals('List_DoesNotExist', $result['name']); }