rest_test.module

Same filename and directory in other branches
  1. 8.9.x core/modules/rest/tests/modules/rest_test/rest_test.module
  2. 10 core/modules/rest/tests/modules/rest_test/rest_test.module
  3. 11.x core/modules/rest/tests/modules/rest_test/rest_test.module

Contains hook implementations for testing REST module.

File

core/modules/rest/tests/modules/rest_test/rest_test.module

View source
<?php


/**
 * @file
 * Contains hook implementations for testing REST module.
 */
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Field\FieldDefinitionInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Access\AccessResult;

/**
 * Implements hook_entity_field_access().
 *
 * @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::setUp()
 */
function rest_test_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
    // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPost()
    // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
    if ($field_definition->getName() === 'field_rest_test') {
        switch ($operation) {
            case 'view':
                // Never ever allow this field to be viewed: this lets
                // EntityResourceTestBase::testGet() test in a "vanilla" way.
                return AccessResult::forbidden();
            case 'edit':
                return AccessResult::forbidden();
        }
    }
    // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testGet()
    // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
    if ($field_definition->getName() === 'field_rest_test_multivalue') {
        switch ($operation) {
            case 'view':
                // Never ever allow this field to be viewed: this lets
                // EntityResourceTestBase::testGet() test in a "vanilla" way.
                return AccessResult::forbidden();
        }
    }
    // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testGet()
    // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
    if ($field_definition->getName() === 'rest_test_validation') {
        switch ($operation) {
            case 'view':
                // Never ever allow this field to be viewed: this lets
                // EntityResourceTestBase::testGet() test in a "vanilla" way.
                return AccessResult::forbidden();
        }
    }
    // No opinion.
    return AccessResult::neutral();
}

/**
 * Implements hook_entity_base_field_info().
 */
function rest_test_entity_base_field_info(EntityTypeInterface $entity_type) {
    $fields = [];
    $fields['rest_test_validation'] = BaseFieldDefinition::create('string')->setLabel(t('REST test validation field'))
        ->setDescription(t('A text field with some special validations attached used for testing purposes'))
        ->addConstraint('rest_test_validation');
    return $fields;
}

Functions

Title Deprecated Summary
rest_test_entity_base_field_info Implements hook_entity_base_field_info().
rest_test_entity_field_access Implements hook_entity_field_access().

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.