* 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;
}
}
+ // @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;
+}