implement test mode for TwingleSync
This commit is contained in:
parent
50b0ff7da8
commit
f9cbe9db6c
3 changed files with 27 additions and 13 deletions
|
@ -106,18 +106,18 @@ class TwingleApiCall {
|
|||
* @throws \CiviCRM_API3_Exception
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function syncProject($values) {
|
||||
public function syncProject(array $values, bool $is_test = FALSE) {
|
||||
|
||||
if (is_array($values)) {
|
||||
$project = new TwingleProject($values);
|
||||
|
||||
$result = $project->create($is_test);
|
||||
$result = $project->create();
|
||||
|
||||
if (
|
||||
$result['state'] == 'exists' &&
|
||||
$values['last_update'] > $project->getTimestamp()
|
||||
) {
|
||||
$result = $project->update();
|
||||
$result = $project->update($is_test);
|
||||
}
|
||||
elseif (
|
||||
$result['state'] == 'exists' &&
|
||||
|
@ -134,7 +134,8 @@ class TwingleApiCall {
|
|||
|
||||
}
|
||||
|
||||
public function updateProject(array $values) {
|
||||
public function updateProject(array $values, bool $is_test = FALSE) {
|
||||
// TODO: Implement $is_test
|
||||
$url = $this->protocol . 'project' . $this->baseUrl . $values['id'];
|
||||
return $this->curlPost($url, $values);
|
||||
}
|
||||
|
|
|
@ -92,15 +92,18 @@ class TwingleProject {
|
|||
|
||||
// Create project if it does not exist yet and give back the result
|
||||
if (!$this->exists()) {
|
||||
$result = civicrm_api3('Campaign', 'create', $translatedValues);
|
||||
if (!$is_test) {
|
||||
$result = civicrm_api3('Campaign', 'create', $translatedValues);
|
||||
$this->id = $result['id'];
|
||||
$this->timestamp = $result['last_update'];
|
||||
return [
|
||||
'title' => $this->values['title'],
|
||||
'id' => $this->id,
|
||||
'project_id' => $this->values['id'],
|
||||
}
|
||||
// If this is a test, do not create campaign
|
||||
else {
|
||||
'state' => 'created',
|
||||
];
|
||||
}
|
||||
}
|
||||
else {
|
||||
}
|
||||
// Give information back if project already exists
|
||||
return [
|
||||
|
@ -114,14 +117,20 @@ class TwingleProject {
|
|||
/**
|
||||
* Update an existing project
|
||||
*
|
||||
* If true: don't do any changes
|
||||
*
|
||||
* @param bool $is_test
|
||||
*
|
||||
* @return array
|
||||
* @throws \CiviCRM_API3_Exception
|
||||
*/
|
||||
public function update() {
|
||||
public function update(bool $is_test = FALSE) {
|
||||
|
||||
// Translate $value keys to custom field names
|
||||
$translatedValues = $this->translateValues();
|
||||
|
||||
$result = civicrm_api3('Campaign', 'create', $translatedValues);
|
||||
if (!$is_test) {
|
||||
$result = civicrm_api3('Campaign', 'create', $translatedValues);
|
||||
return [
|
||||
'title' => $this->values['title'],
|
||||
'id' => $this->id,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue