You are here

class RestfulCToolsPluginsDiscovery in RESTful 7

@file Contains \RestfulCToolsPluginsDiscovery

Hierarchy

Expanded class hierarchy of RestfulCToolsPluginsDiscovery

1 string reference to 'RestfulCToolsPluginsDiscovery'
discovery__1_0.inc in plugins/restful/ctools_plugins/1.0/discovery__1_0.inc

File

plugins/restful/ctools_plugins/1.0/RestfulCToolsPluginsDiscovery.class.php, line 8
Contains \RestfulCToolsPluginsDiscovery

View source
class RestfulCToolsPluginsDiscovery extends \RestfulDataProviderCToolsPlugins {

  /**
   * {@inheritdoc}
   */
  public function publicFieldsInfo() {
    return array(
      'label' => array(
        'property' => 'label',
      ),
      'description' => array(
        'property' => 'description',
      ),
      'name' => array(
        'property' => 'name',
      ),
      'resource' => array(
        'property' => 'resource',
      ),
      'major_version' => array(
        'property' => 'major_version',
      ),
      'minor_version' => array(
        'property' => 'minor_version',
      ),
      'self' => array(
        'callback' => array(
          $this,
          'getSelf',
        ),
      ),
    );
  }

  /**
   * Overrides \RestfulDataProviderCToolsPlugins::getPlugins().
   *
   * Remove the discovery plugin(s) from the list.
   */
  public function getPlugins() {
    $plugins = parent::getPlugins();
    foreach ($plugins as $plugin_name => $plugin) {
      if (!$plugin['discoverable']) {
        unset($plugins[$plugin_name]);
      }
    }
    $request = $this
      ->getRequest();
    if (empty($request['all'])) {

      // Return only the last version of each resource.
      foreach ($plugins as $plugin_name => $plugin) {
        list($major_version, $minor_version) = static::getResourceLastVersion($plugin['resource']);
        if ($plugin['major_version'] != $major_version || $plugin['minor_version'] != $minor_version) {
          unset($plugins[$plugin_name]);
        }
      }
    }
    return $plugins;
  }

  /**
   * Returns the URL to the endpoint result.
   *
   * @param array $plugin
   *   The unprocessed plugin definition.
   *
   * @return string
   *   The RESTful endpoint.
   */
  protected function getSelf($plugin) {
    if ($plugin['menu_item']) {
      return url($plugin['menu_item'], array(
        'absolute' => TRUE,
      ));
    }
    $base_path = variable_get('restful_hook_menu_base_path', 'api');
    return url($base_path . '/v' . $plugin['major_version'] . '.' . $plugin['minor_version'] . '/' . $plugin['resource'], array(
      'absolute' => TRUE,
    ));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RestfulBase::$authenticationManager protected property Authentication manager.
RestfulBase::$cacheController protected property Cache controller object.
RestfulBase::$controllers protected property Nested array that provides information about what method to call for each route pattern.
RestfulBase::$httpHeaders protected property Array keyed by the header property, and the value.
RestfulBase::$langcode protected property Determines the language of the items that should be returned.
RestfulBase::$method protected property The HTTP method used for the request.
RestfulBase::$path protected property The path of the request.
RestfulBase::$publicFields protected property The public fields that are exposed to the API. 1
RestfulBase::$range protected property Determines the number of items that should be returned when viewing lists.
RestfulBase::$rateLimitManager protected property Rate limit manager.
RestfulBase::$request protected property The request array.
RestfulBase::$staticCache public property Static cache controller.
RestfulBase::$valueMetadata protected property Holds additional information about the generated values. This information is available to the formatters.
RestfulBase::access public function Determine if user can access the handler. Overrides RestfulInterface::access 4
RestfulBase::accessByAllowOrigin protected function Checks access based on the referer header and the allow_origin setting.
RestfulBase::addCidParams protected static function Get the cache id parameters based on the keys.
RestfulBase::addDefaultValuesToPublicFields protected function Add default values to the public fields array. 2
RestfulBase::addExtraInfoToQuery protected function Adds query tags and metadata to the EntityFieldQuery. 2
RestfulBase::addHttpHeaders public function Add the a value to a multi-value HTTP header. Overrides RestfulInterface::addHttpHeaders
RestfulBase::cacheInvalidate public function Invalidates cache for a certain entity.
RestfulBase::cleanRequest public static function Helper function to remove the application generated request data.
RestfulBase::clearRenderedCache protected function Clear an entry from the rendered cache.
RestfulBase::clearResourceRenderedCache public function Clear all caches corresponding to the current resource.
RestfulBase::controllersInfo public static function Returns the default controllers for the entity. 1
RestfulBase::create public function 3
RestfulBase::delete public function Call resource using the DELETE http method.
RestfulBase::executeCallback public static function Execute a user callback.
RestfulBase::format public function Call the output format on the given data.
RestfulBase::formatter protected function Get the formatter handler for the current restful formatter.
RestfulBase::formatterNames public function Returns the names of the available formatter plugins.
RestfulBase::generateCacheId protected function Generate a cache identifier for the request and the current context.
RestfulBase::get public function Call resource using the GET http method.
RestfulBase::getAccount public function Proxy method to get the account from the authenticationManager.
RestfulBase::getAuthenticationManager public function Getter for $authenticationManager.
RestfulBase::getCacheController public function Getter for $cacheController.
RestfulBase::getControllerFromPath public function Return the controller from a given path.
RestfulBase::getControllers public function Get the defined controllers
RestfulBase::getHttpHeaders public function Return array keyed by the header property, and the value. Overrides RestfulInterface::getHttpHeaders
RestfulBase::getLangCode public function Get the language code.
RestfulBase::getMenuItem public static function Get the non translated menu item.
RestfulBase::getMethod public function Get the HTTP method used for the request.
RestfulBase::getPageArguments public static function Get the resource name and version from the page arguments in the router.
RestfulBase::getPath public function Return the path of the request.
RestfulBase::getPublicFields public function Return the properties that should be public after processing. Overrides RestfulInterface::getPublicFields
RestfulBase::getRange public function Get the pager range.
RestfulBase::getRateLimitManager public function Getter for rateLimitManager.
RestfulBase::getRenderedCache protected function Get an entry from the rendered cache.
RestfulBase::getRequest public function Get the request array.
RestfulBase::getRequestForSubRequest protected function Gets a request array with the data that should be piped to sub requests.
RestfulBase::getResourceLastVersion public static function Return the last version for a given resource.
RestfulBase::getResourceName public function Return the resource name.
RestfulBase::getUrl public function Helper method; Get the URL of the resource and query strings.
RestfulBase::getValueMetadata public function Get value metadata.
RestfulBase::getVersion public function Return array keyed with the major and minor version of the resource.
RestfulBase::getVersionFromRequest public static function Gets the major and minor version for the current request.
RestfulBase::head public function Call resource using the GET http method.
RestfulBase::isArrayNumeric final public static function Helper method to determine if an array is numeric.
RestfulBase::isListRequest public function Helper method to know if the current request is for a list.
RestfulBase::isReadMethod public static function Determines if the HTTP method represents a read operation.
RestfulBase::isValidMethod public static function Determines if the HTTP method is one of the known methods.
RestfulBase::isValidOperatorsForFilter protected static function Check if an operator is valid for filtering. 1
RestfulBase::isWriteMethod public static function Determines if the HTTP method represents a write operation.
RestfulBase::newCacheObject protected function Get the default cache object based on the plugin configuration.
RestfulBase::notImplementedCrudOperation protected static function Helper method with the code to run for non implemented CRUD operations.
RestfulBase::options public function Call resource using the OPTIONS http method.
RestfulBase::overrideRange protected function Overrides the range parameter with the URL value if any.
RestfulBase::parseRequestForListFilter protected function Filter the query for list.
RestfulBase::parseRequestForListPagination protected function Parses the request object to get the pagination options.
RestfulBase::parseRequestForListSort protected function Parses the request to get the sorting options.
RestfulBase::parseVersionString public static function Parses the version string.
RestfulBase::patch public function Call resource using the PATCH http method.
RestfulBase::post public function Call resource using the POST http method.
RestfulBase::process public function Entry point to process a request. Overrides RestfulInterface::process
RestfulBase::processDataProviderOptions protected function Process plugin options by validation keys exists, and set default values.
RestfulBase::put public function Call resource using the PUT http method.
RestfulBase::remove public function 3
RestfulBase::setAccount public function Proxy method to set the account from the authenticationManager.
RestfulBase::setAuthenticationManager public function Setter for $authenticationManager.
RestfulBase::setHttpHeaders public function Set the HTTP headers. Overrides RestfulInterface::setHttpHeaders
RestfulBase::setLangCode public function Sets the language code.
RestfulBase::setMethod public function Set the HTTP method used for the request.
RestfulBase::setPath public function Set the path of the request.
RestfulBase::setPublicFields public function Set the public fields.
RestfulBase::setRange public function Set the pager range.
RestfulBase::setRateLimitManager public function Setter for rateLimitManager.
RestfulBase::setRenderedCache protected function Store an entry in the rendered cache.
RestfulBase::setRequest public function Set the request array.
RestfulBase::update public function 3
RestfulBase::versionedUrl public function Gets a resource URL based on the current version.
RestfulBase::viewMultiple public function 2
RestfulCToolsPluginsDiscovery::getPlugins public function Overrides \RestfulDataProviderCToolsPlugins::getPlugins(). Overrides RestfulDataProviderCToolsPlugins::getPlugins
RestfulCToolsPluginsDiscovery::getSelf protected function Returns the URL to the endpoint result.
RestfulCToolsPluginsDiscovery::publicFieldsInfo public function Return the properties that should be public. Overrides RestfulInterface::publicFieldsInfo
RestfulDataProviderCToolsPlugins::$module protected property The module name.
RestfulDataProviderCToolsPlugins::$plugins protected property The loaded plugins.
RestfulDataProviderCToolsPlugins::$type protected property The type of the plugin.
RestfulDataProviderCToolsPlugins::evaluateExpression protected function Evaluate a simple expression.
RestfulDataProviderCToolsPlugins::getModule public function Get the module name.
RestfulDataProviderCToolsPlugins::getPluginsSortedAndFiltered public function Gets the plugins filtered and sorted by the request.
RestfulDataProviderCToolsPlugins::getTotalCount public function Get the total count of entities that match certain request. Overrides RestfulDataProviderCToolsPluginsInterface::getTotalCount
RestfulDataProviderCToolsPlugins::getType public function Get the plugin type.
RestfulDataProviderCToolsPlugins::index public function Get a list of entities. Overrides RestfulBase::index
RestfulDataProviderCToolsPlugins::isValidConjunctionForFilter protected static function Overrides \RestfulBase::isValidConjuctionForFilter(). Overrides RestfulBase::isValidConjunctionForFilter
RestfulDataProviderCToolsPlugins::sortMultiCompare protected function Sort plugins by multiple criteria.
RestfulDataProviderCToolsPlugins::view public function @todo: We should generalize this, as it's repeated often. Overrides RestfulBase::view
RestfulDataProviderCToolsPlugins::__construct public function Constructs a RestfulDataProviderCToolsPlugins object. Overrides RestfulBase::__construct
RestfulInterface::ACCESS_ALLOW constant Return this value from public field access callbacks to allow access.
RestfulInterface::ACCESS_DENY constant Return this value from public field access callbacks to deny access.
RestfulInterface::ACCESS_IGNORE constant Return this value from public field access callbacks to not affect access.
RestfulInterface::CONNECT constant
RestfulInterface::DELETE constant
RestfulInterface::GET constant HTTP methods.
RestfulInterface::HEAD constant
RestfulInterface::OPTIONS constant
RestfulInterface::PATCH constant
RestfulInterface::POST constant
RestfulInterface::PUT constant
RestfulInterface::TOKEN_VALUE constant Token value for token generation functions.
RestfulInterface::TRACE constant
RestfulPluginBase::$plugin protected property The plugin definition array.
RestfulPluginBase::getPlugin public function Gets information about the restful plugin. Overrides RestfulPluginInterface::getPlugin
RestfulPluginBase::getPluginKey public function Gets information about the restful plugin key. Overrides RestfulPluginInterface::getPluginKey
RestfulPluginBase::setPlugin public function Sets information about the restful plugin. Overrides RestfulPluginInterface::setPlugin
RestfulPluginBase::setPluginKey public function Gets information about the restful plugin key. Overrides RestfulPluginInterface::setPluginKey