[MediaWiki-commits] [Gerrit] wikimedia...crm[master]: Update Omnimail to use offset
Eileen has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/377666 ) Change subject: Update Omnimail to use offset .. Update Omnimail to use offset Bug: T175665 Change-Id: Ieb84390d195a5340dd171af4bab0118da569b163 --- M sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/tests/phpunit/OmnigroupmemberLoadTest.php 4 files changed, 138 insertions(+), 13 deletions(-) Approvals: jenkins-bot: Verified Ejegg: Looks good to me, approved diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php index e38e65f..3e8c48f 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php @@ -41,6 +41,13 @@ } $request = Omnimail::create($params['mail_provider'], $mailerCredentials)->getGroupMembers($jobParameters); +$offset = CRM_Utils_Array::value('offset', $jobSettings, 0); +if (isset($params['options']['offset'])) { + $offset = $params['options']['offset']; +} +if ($offset) { + $request->setOffset((int) $offset); +} $startTimestamp = self::getStartTimestamp($params, $jobSettings); $this->endTimeStamp = self::getEndTimestamp(CRM_Utils_Array::value('end_date', $params), $settings, $startTimestamp); @@ -58,6 +65,7 @@ $request->setGroupIdentifier($params['group_identifier']); $result = $request->getResponse(); +$this->setRetrievalParameters($result->getRetrievalParameters()); for ($i = 0; $i < $settings['omnimail_job_retry_number']; $i++) { if ($result->isCompleted()) { $data = $result->getData(); @@ -69,7 +77,7 @@ } throw new CRM_Omnimail_IncompleteDownloadException('Download incomplete', 0, array( - 'retrieval_parameters' => $result->getRetrievalParameters(), + 'retrieval_parameters' => $this->getRetrievalParameters(), 'mail_provider' => $params['mail_provider'], 'end_date' => $this->endTimeStamp, )); diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php index b372980..04a548f 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php @@ -26,6 +26,26 @@ */ public $endTimeStamp; + + /** + * @var array + */ + protected $retrievalParameters; + + /** + * @return array + */ + public function getRetrievalParameters() { +return $this->retrievalParameters; + } + + /** + * @param array $retrievalParameters + */ + public function setRetrievalParameters($retrievalParameters) { +$this->retrievalParameters = $retrievalParameters; + } + /** * Get the timestamp to start from. * diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php index 7744a1a..6ce2547 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php @@ -22,17 +22,18 @@ $rowsLeftBeforeThrottle = $throttleCount; $job = new CRM_Omnimail_Omnigroupmembers(); + $jobSettings = $job->getJobSettings($params); try { $contacts = $job->getResult($params); } catch (CRM_Omnimail_IncompleteDownloadException $e) { -$jobSettings = $job->getJobSettings($params); civicrm_api3('Setting', 'create', array( 'omnimail_omnigroupmembers_load' => array( $params['mail_provider'] => array( 'last_timestamp' => $jobSettings['last_timestamp'], 'retrieval_parameters' => $e->getRetrievalParameters(), 'progress_end_date' => $e->getEndTimestamp(), + 'offset' => 0, ), ), )); @@ -42,7 +43,31 @@ $defaultLocationType = CRM_Core_BAO_LocationType::getDefault(); $locationTypeID = $defaultLocationType->id; + if (isset($params['options']['offset'])) { +$offset = $params['options']['offset']; + } + else { +$offset = CRM_Utils_Array::value('offset', $jobSettings, 0); + } + $limit = (isset($params['options']['limit'])) ? $params['options']['limit'] : NULL; + $count = 0; + foreach ($contacts as $contact) { +if ($count === $limit) { +
[MediaWiki-commits] [Gerrit] wikimedia...crm[master]: Update Omnimail to use offset
Eileen has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/377666 ) Change subject: Update Omnimail to use offset .. Update Omnimail to use offset Bug: T175665 Change-Id: Ieb84390d195a5340dd171af4bab0118da569b163 --- M sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/tests/phpunit/OmnigroupmemberLoadTest.php 4 files changed, 137 insertions(+), 13 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm refs/changes/66/377666/1 diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php index e38e65f..3e8c48f 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php @@ -41,6 +41,13 @@ } $request = Omnimail::create($params['mail_provider'], $mailerCredentials)->getGroupMembers($jobParameters); +$offset = CRM_Utils_Array::value('offset', $jobSettings, 0); +if (isset($params['options']['offset'])) { + $offset = $params['options']['offset']; +} +if ($offset) { + $request->setOffset((int) $offset); +} $startTimestamp = self::getStartTimestamp($params, $jobSettings); $this->endTimeStamp = self::getEndTimestamp(CRM_Utils_Array::value('end_date', $params), $settings, $startTimestamp); @@ -58,6 +65,7 @@ $request->setGroupIdentifier($params['group_identifier']); $result = $request->getResponse(); +$this->setRetrievalParameters($result->getRetrievalParameters()); for ($i = 0; $i < $settings['omnimail_job_retry_number']; $i++) { if ($result->isCompleted()) { $data = $result->getData(); @@ -69,7 +77,7 @@ } throw new CRM_Omnimail_IncompleteDownloadException('Download incomplete', 0, array( - 'retrieval_parameters' => $result->getRetrievalParameters(), + 'retrieval_parameters' => $this->getRetrievalParameters(), 'mail_provider' => $params['mail_provider'], 'end_date' => $this->endTimeStamp, )); diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php index b372980..04a548f 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php @@ -26,6 +26,26 @@ */ public $endTimeStamp; + + /** + * @var array + */ + protected $retrievalParameters; + + /** + * @return array + */ + public function getRetrievalParameters() { +return $this->retrievalParameters; + } + + /** + * @param array $retrievalParameters + */ + public function setRetrievalParameters($retrievalParameters) { +$this->retrievalParameters = $retrievalParameters; + } + /** * Get the timestamp to start from. * diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php index 7744a1a..6ce2547 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php @@ -22,17 +22,18 @@ $rowsLeftBeforeThrottle = $throttleCount; $job = new CRM_Omnimail_Omnigroupmembers(); + $jobSettings = $job->getJobSettings($params); try { $contacts = $job->getResult($params); } catch (CRM_Omnimail_IncompleteDownloadException $e) { -$jobSettings = $job->getJobSettings($params); civicrm_api3('Setting', 'create', array( 'omnimail_omnigroupmembers_load' => array( $params['mail_provider'] => array( 'last_timestamp' => $jobSettings['last_timestamp'], 'retrieval_parameters' => $e->getRetrievalParameters(), 'progress_end_date' => $e->getEndTimestamp(), + 'offset' => 0, ), ), )); @@ -42,7 +43,31 @@ $defaultLocationType = CRM_Core_BAO_LocationType::getDefault(); $locationTypeID = $defaultLocationType->id; + if (isset($params['options']['offset'])) { +$offset = $params['options']['offset']; + } + else { +$offset = CRM_Utils_Array::value('offset', $jobSettings, 0); + } + $limit = (isset($params['options']['limit'])) ? $params['options']['limit'] : NULL; + $count = 0; + foreach ($contacts as $contact) { +if ($count ===
[MediaWiki-commits] [Gerrit] wikimedia...crm[master]: Update Omnimail to use offset
Eileen has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/377664 ) Change subject: Update Omnimail to use offset .. Update Omnimail to use offset Bug: T175665 Change-Id: If520df67b3a00a557ec849bc367406d0ec22b330 --- M sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php M sites/default/civicrm/extensions/org.wikimedia.omnimail/composer.lock M sites/default/civicrm/extensions/org.wikimedia.omnimail/tests/phpunit/OmnigroupmemberLoadTest.php 5 files changed, 139 insertions(+), 15 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/crm refs/changes/64/377664/1 diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php index e38e65f..3e8c48f 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnigroupmembers.php @@ -41,6 +41,13 @@ } $request = Omnimail::create($params['mail_provider'], $mailerCredentials)->getGroupMembers($jobParameters); +$offset = CRM_Utils_Array::value('offset', $jobSettings, 0); +if (isset($params['options']['offset'])) { + $offset = $params['options']['offset']; +} +if ($offset) { + $request->setOffset((int) $offset); +} $startTimestamp = self::getStartTimestamp($params, $jobSettings); $this->endTimeStamp = self::getEndTimestamp(CRM_Utils_Array::value('end_date', $params), $settings, $startTimestamp); @@ -58,6 +65,7 @@ $request->setGroupIdentifier($params['group_identifier']); $result = $request->getResponse(); +$this->setRetrievalParameters($result->getRetrievalParameters()); for ($i = 0; $i < $settings['omnimail_job_retry_number']; $i++) { if ($result->isCompleted()) { $data = $result->getData(); @@ -69,7 +77,7 @@ } throw new CRM_Omnimail_IncompleteDownloadException('Download incomplete', 0, array( - 'retrieval_parameters' => $result->getRetrievalParameters(), + 'retrieval_parameters' => $this->getRetrievalParameters(), 'mail_provider' => $params['mail_provider'], 'end_date' => $this->endTimeStamp, )); diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php index b372980..04a548f 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/CRM/Omnimail/Omnimail.php @@ -26,6 +26,26 @@ */ public $endTimeStamp; + + /** + * @var array + */ + protected $retrievalParameters; + + /** + * @return array + */ + public function getRetrievalParameters() { +return $this->retrievalParameters; + } + + /** + * @param array $retrievalParameters + */ + public function setRetrievalParameters($retrievalParameters) { +$this->retrievalParameters = $retrievalParameters; + } + /** * Get the timestamp to start from. * diff --git a/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php b/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php index 7744a1a..6ce2547 100644 --- a/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php +++ b/sites/default/civicrm/extensions/org.wikimedia.omnimail/api/v3/Omnigroupmember/Load.php @@ -22,17 +22,18 @@ $rowsLeftBeforeThrottle = $throttleCount; $job = new CRM_Omnimail_Omnigroupmembers(); + $jobSettings = $job->getJobSettings($params); try { $contacts = $job->getResult($params); } catch (CRM_Omnimail_IncompleteDownloadException $e) { -$jobSettings = $job->getJobSettings($params); civicrm_api3('Setting', 'create', array( 'omnimail_omnigroupmembers_load' => array( $params['mail_provider'] => array( 'last_timestamp' => $jobSettings['last_timestamp'], 'retrieval_parameters' => $e->getRetrievalParameters(), 'progress_end_date' => $e->getEndTimestamp(), + 'offset' => 0, ), ), )); @@ -42,7 +43,31 @@ $defaultLocationType = CRM_Core_BAO_LocationType::getDefault(); $locationTypeID = $defaultLocationType->id; + if (isset($params['options']['offset'])) { +$offset = $params['options']['offset']; + } + else { +$offset = CRM_Utils_Array::value('offset', $jobSettings, 0); + } + $limit = (isset($params['options']['limit'])) ? $params['options']['limit'] : NULL; +