function salesforce_push_entity_crud in Salesforce Suite 7.3
Same name and namespace in other branches
- 8.4 modules/salesforce_push/salesforce_push.module \salesforce_push_entity_crud()
- 8.3 modules/salesforce_push/salesforce_push.module \salesforce_push_entity_crud()
- 5.0.x modules/salesforce_push/salesforce_push.module \salesforce_push_entity_crud()
Push entities to Salesforce.
Parameters
string $entity_type: Type of Drupal entity.
object $entity: The entity object.
int $sf_sync_trigger: The trigger being responded to.
6 calls to salesforce_push_entity_crud()
- salesforce_mapping_object_table_form_submit in modules/
salesforce_mapping/ includes/ salesforce_mapping_object.admin.inc - Submit handle for the bulk operations form.
- salesforce_push_action in modules/
salesforce_push/ salesforce_push.module - Push entity to Salesforce.
- salesforce_push_entity_delete in modules/
salesforce_push/ salesforce_push.module - Implements hook_entity_delete().
- salesforce_push_entity_insert in modules/
salesforce_push/ salesforce_push.module - Implements hook_entity_insert().
- salesforce_push_entity_update in modules/
salesforce_push/ salesforce_push.module - Implements hook_entity_update().
File
- modules/
salesforce_push/ salesforce_push.module, line 41 - Push updates to Salesforce when a Drupal entity is updated.
Code
function salesforce_push_entity_crud($entity_type, $entity, $sf_sync_trigger) {
// Avoid duplicate processing if this entity has just been updated by
// Salesforce pull.
if (isset($entity->salesforce_pull) && $entity->salesforce_pull) {
return FALSE;
}
list($entity_id, , $bundle) = entity_extract_ids($entity_type, $entity);
$mappings = salesforce_mapping_load_multiple(array(
'drupal_entity_type' => $entity_type,
'drupal_bundle' => $bundle,
));
foreach ($mappings as $mapping) {
if ($mapping->sync_triggers & $sf_sync_trigger) {
// Allow other modules to prevent a sync per-mapping.
foreach (module_implements('salesforce_push_entity_allowed') as $module) {
if (module_invoke($module, 'salesforce_push_entity_allowed', $entity_type, $entity, $sf_sync_trigger, $mapping) === FALSE) {
continue 2;
}
}
if (isset($mapping->push_async) && $mapping->push_async) {
$queue = DrupalQueue::get(SALESFORCE_PUSH_QUEUE);
$queue
->createItem(array(
'entity_type' => $entity_type,
'entity_id' => $entity_id,
'mapping' => $mapping,
'trigger' => $sf_sync_trigger,
));
continue;
}
salesforce_push_sync_rest($entity_type, $entity, $mapping, $sf_sync_trigger);
}
}
}