function salesforce_pull_webhook in Salesforce Suite 7.3
Webhook callback for salesforce pull. Returns status of 200 for successful attempt or 403 for a failed pull attempt (SF not authorized, threshhold reached, etc.
1 string reference to 'salesforce_pull_webhook'
- salesforce_pull_menu in modules/
salesforce_pull/ salesforce_pull.module - Implements hook_menu().
File
- modules/
salesforce_pull/ salesforce_pull.module, line 46 - Pull updates from Salesforce when a Salesforce object is updated.
Code
function salesforce_pull_webhook() {
if (salesforce_pull()) {
$code = '200';
// Queue is populated, but not processed yet so we manually do some of what
// drupal_cron_run() does to trigger processing of our pull queue.
$queues = salesforce_pull_cron_queue_info();
$info = $queues[SALESFORCE_PULL_QUEUE];
$callback = $info['worker callback'];
$end = time() + (isset($info['time']) ? $info['time'] : 15);
$queue = DrupalQueue::get(SALESFORCE_PULL_QUEUE);
while (time() < $end && ($item = $queue
->claimItem())) {
try {
call_user_func($callback, $item->data);
$queue
->deleteItem($item);
} catch (Exception $e) {
// In case of exception log it and leave the item in the queue
// to be processed again later.
watchdog_exception('salesforce_pull', $e);
}
}
}
else {
$code = '403';
}
http_response_code($code);
drupal_exit();
}