function services_client_error_sc_process_data in Services Client 7
Same name in this branch
- 7 services_client.api.php \services_client_error_sc_process_data()
- 7 services_client_error/services_client_error.module \services_client_error_sc_process_data()
Implements hook_sc_process_data().
File
- services_client_error/
services_client_error.module, line 167 - Services Client error handling, re-try and reporting.
Code
function services_client_error_sc_process_data($entity_type, $entity, $task) {
// Load entity_id
list($id) = entity_extract_ids($entity_type, $entity);
// Get list of unprocessed errors, that are related to entity. Mark them as
// overwritten and store new data.
$result = db_query("SELECT eid FROM {services_client_error} WHERE entity_type = :type AND entity_id = :id AND status = :status AND hook = :hook AND task = :task", array(
':type' => $entity_type,
':id' => $id,
':status' => SC_ERROR_UNPROCESSED,
':hook' => $task->hook,
':task' => $task->name,
))
->fetchAllKeyed(0, 0);
// No errors are unprocessed.
if (empty($result)) {
return;
}
// Mar all as overwritten.
db_update('services_client_error')
->fields(array(
'status' => SC_ERROR_OVERWRITTEN,
))
->condition('eid', $result, 'IN')
->execute();
foreach ($result as $eid) {
$log = array(
'eid' => $eid,
'message' => 'Overwritten by data update.',
'status_change' => SC_ERROR_OVERWRITTEN,
'data' => $entity,
);
services_client_error_log_save($log);
}
}