[MediaWiki-commits] [Gerrit] wikimedia...crm[master]: Update Omnimail to use offset

2017-09-12 Thread Eileen (Code Review)
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

2017-09-12 Thread Eileen (Code Review)
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

2017-09-12 Thread Eileen (Code Review)
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;
+