You are here

function services_client_error_mail in Services Client 7

Same name and namespace in other branches
  1. 7.2 services_client_error/services_client_error.module \services_client_error_mail()

Implements hook_mail().

File

services_client_error/services_client_error.module, line 207
Services Client error handling, re-try and reporting.

Code

function services_client_error_mail($key, &$message, $params) {
  if ($key == 'notify_errors') {
    $message['subject'] = t('SC: Failed pushing resources: Errors: !errors, Site: @site', array(
      '!errors' => count($params['errors']),
      '@site' => variable_get('site_name', 'Drupal'),
    ));
    foreach ($params['errors'] as $error) {
      $task = $error['task'];
      if ($error['type'] == 'node') {
        $node = $error['data'];
        $row = array();
        $row[] = 'Node: ' . $node->title . ' ' . url('node/' . $node->nid . '/edit', array(
          'absolute' => TRUE,
        ));
        $row[] = 'Task: ' . $task->title . ' conn: ' . $task->conn_name;
        if (!empty($error['token'])) {
          $row[] = 'Link: ' . url('services_client_error/' . $error['token'], array(
            'absolute' => TRUE,
          ));
        }
        $message['body'][] = implode("\n", $row);
      }
      elseif ($error['type'] == 'user') {
        $account = $error['data'];
        $row = array();
        $row[] = 'User: ' . $account->name . ' ' . url('user/' . $account->uid, array(
          'absolute' => TRUE,
        ));
        $row[] = 'Task: ' . $task->title . ' conn: ' . $task->conn_name;
        if (!empty($error['token'])) {
          $row[] = 'Link: ' . url('services_client_error/' . $error['token'], array(
            'absolute' => TRUE,
          ));
        }
        $message['body'][] = implode("\n", $row);
      }
    }
  }
}