You are here

function RESTServer::handleException in Services 6.3

Same name and namespace in other branches
  1. 7.3 servers/rest_server/includes/RESTServer.inc \RESTServer::handleException()
1 call to RESTServer::handleException()
RESTServer::handle in servers/rest_server/includes/RESTServer.inc
Handles the call to the REST server

File

servers/rest_server/includes/RESTServer.inc, line 499
Class for handling REST calls.

Class

RESTServer
@file Class for handling REST calls.

Code

function handleException($e) {
  $code = $e
    ->getCode();
  switch ($code) {
    case 204:
      drupal_set_header('HTTP/1.0 204 No Content: ' . $e
        ->getMessage());
      break;
    case 304:
      drupal_set_header('HTTP/1.0 304 Not Modified: ' . $e
        ->getMessage());
      break;
    case 401:
      drupal_set_header('HTTP/1.0 401 Unauthorized: ' . $e
        ->getMessage());
      break;
    case 404:
      drupal_set_header('HTTP/1.0 404 Not found: ' . $e
        ->getMessage());
      break;
    case 406:
      drupal_set_header('HTTP/1.0 406 Not Acceptable: ' . $e
        ->getMessage());
      break;
    default:
      if ($code >= 400 && $code < 600) {
        drupal_set_header('HTTP/1.0 ' . $code . ' ' . $e
          ->getMessage());
      }
      else {
        drupal_set_header('HTTP/1.0 500 An error occurred: (' . $code . ') ' . $e
          ->getMessage());
      }
      break;
  }
  if ($this->endpoint->debug) {
    watchdog('services', 'Exception throw: <pre>@arguments</pre>', array(
      '@arguments' => print_r($e, TRUE),
    ), WATCHDOG_DEBUG);
  }
  if (method_exists($e, 'getData')) {
    return $e
      ->getData();
  }
}