DBLogResource.php

Definition of Drupal\rest\Plugin\rest\resource\DBLogResource.

Namespace

Drupal\rest\Plugin\rest\resource

File

drupal/core/modules/rest/lib/Drupal/rest/Plugin/rest/resource/DBLogResource.php
View source
<?php

/**
 * @file
 * Definition of Drupal\rest\Plugin\rest\resource\DBLogResource.
 */
namespace Drupal\rest\Plugin\rest\resource;

use Drupal\Core\Annotation\Plugin;
use Drupal\Core\Annotation\Translation;
use Drupal\rest\Plugin\ResourceBase;
use Drupal\rest\ResourceResponse;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

/**
 * Provides a resource for database watchdog log entries.
 *
 * @Plugin(
 *   id = "dblog",
 *   label = @Translation("Watchdog database log")
 * )
 */
class DBLogResource extends ResourceBase {

  /**
   * Overrides \Drupal\rest\Plugin\ResourceBase::routes().
   */
  public function routes() {

    // Only expose routes if the dblog module is enabled.
    if (module_exists('dblog')) {
      return parent::routes();
    }
    return new RouteCollection();
  }

  /**
   * Responds to GET requests.
   *
   * Returns a watchdog log entry for the specified ID.
   *
   * @return \Drupal\rest\ResourceResponse
   *   The response containing the log entry.
   *
   * @throws \Symfony\Component\HttpKernel\Exception\HttpException
   */
  public function get($id = NULL) {
    if ($id) {
      $result = db_query("SELECT * FROM {watchdog} WHERE wid = :wid", array(
        ':wid' => $id,
      ))
        ->fetchObject();
      if (!empty($result)) {

        // Serialization is done here, so we indicate with NULL that there is no
        // subsequent serialization necessary.
        $response = new ResourceResponse(NULL, 200, array(
          'Content-Type' => 'application/json',
        ));

        // @todo remove hard coded format here.
        $response
          ->setContent(drupal_json_encode($result));
        return $response;
      }
    }
    throw new NotFoundHttpException('Not Found');
  }

}

Classes

Namesort descending Description
DBLogResource Provides a resource for database watchdog log entries.