class EntityPut in Services 9.0.x
Same name in this branch
- 9.0.x src/Plugin/Deriver/EntityPut.php \Drupal\services\Plugin\Deriver\EntityPut
- 9.0.x src/Plugin/ServiceDefinition/EntityPut.php \Drupal\services\Plugin\ServiceDefinition\EntityPut
Same name and namespace in other branches
- 8.4 src/Plugin/ServiceDefinition/EntityPut.php \Drupal\services\Plugin\ServiceDefinition\EntityPut
Plugin annotation
@ServiceDefinition(
id = "entity_put",
methods = {
"PUT"
},
translatable = true,
deriver = "\Drupal\services\Plugin\Deriver\EntityPut"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, ContextAwarePluginTrait, StringTranslationTrait, TypedDataTrait
- class \Drupal\services\ServiceDefinitionBase implements ServiceDefinitionInterface
- class \Drupal\services\ServiceDefinitionEntityRequestContentBase implements ContainerFactoryPluginInterface
- class \Drupal\services\Plugin\ServiceDefinition\EntityPut
- class \Drupal\services\ServiceDefinitionEntityRequestContentBase implements ContainerFactoryPluginInterface
- class \Drupal\services\ServiceDefinitionBase implements ServiceDefinitionInterface
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, ContextAwarePluginTrait, StringTranslationTrait, TypedDataTrait
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
Expanded class hierarchy of EntityPut
File
- src/
Plugin/ ServiceDefinition/ EntityPut.php, line 23
Namespace
Drupal\services\Plugin\ServiceDefinitionView source
class EntityPut extends ServiceDefinitionEntityRequestContentBase {
/**
* {@inheritdoc}
*/
public function processRoute(Route $route) {
$route
->setRequirement('_entity_access', $this
->getDerivativeId() . '.update');
}
/**
* {@inheritdoc}
*/
public function processRequest(Request $request, RouteMatchInterface $route_match, SerializerInterface $serializer) {
try {
$updated_entity = parent::processRequest($request, $route_match, $serializer);
/* @var $entity \Drupal\Core\Entity\EntityInterface */
$entity = $this
->getContextValue($this
->getDerivativeId());
if ($entity instanceof ContentEntityInterface) {
foreach ($updated_entity as $field_name => $field) {
$entity
->set($field_name, $field
->getValue());
}
}
else {
/* @var $updated_entity \Drupal\Core\Config\Entity\ConfigEntityInterface */
foreach ($updated_entity
->toArray() as $field_name => $field) {
$entity
->set($field_name, $field);
}
}
$entity
->save();
return $entity
->toArray();
} catch (\Exception $e) {
throw new HttpException(422, 'The supplied content body could not be serialized into an entity of the requested type.', $e);
}
}
}