function salesforce_push_enqueue_async in Salesforce Suite 5.0.x
Same name and namespace in other branches
- 8.4 modules/salesforce_push/salesforce_push.module \salesforce_push_enqueue_async()
- 8.3 modules/salesforce_push/salesforce_push.module \salesforce_push_enqueue_async()
Insert a new queue item into the async push queue for the given mapping.
Parameters
\Drupal\Core\Entity\EntityInterface $entity: The entity.
\Drupal\salesforce_mapping\Entity\SalesforceMappingInterface $mapping: The mapping.
string $op: The operation.
1 call to salesforce_push_enqueue_async()
- salesforce_push_entity_crud_mapping in modules/
salesforce_push/ salesforce_push.module - Helper method for salesforce_push_entity_crud()
File
- modules/
salesforce_push/ salesforce_push.module, line 216 - Push updates to Salesforce when a Drupal entity is updated.
Code
function salesforce_push_enqueue_async(EntityInterface $entity, SalesforceMappingInterface $mapping, MappedObjectInterface $mapped_object = NULL, $op) {
// Each mapping has its own queue, so that like entries can be easily grouped
// for batching. Each queue item is a unique array of entity ids to be
// pushed. The async queue worker loads the queue item and works through as
// many entities as possible, up to the async limit for this mapping.
$props = [
'name' => $mapping
->id(),
'entity_id' => $entity
->id(),
'op' => $op,
];
if ($mapped_object) {
$props['mapped_object_id'] = $mapped_object
->id();
}
\Drupal::service('queue.salesforce_push')
->createItem($props);
}