function fb_instant_articles_api_entity_delete in Facebook Instant Articles 3.x
Same name and namespace in other branches
- 8.2 modules/fb_instant_articles_api/fb_instant_articles_api.module \fb_instant_articles_api_entity_delete()
Implements hook_entity_delete().
File
- modules/
fb_instant_articles_api/ fb_instant_articles_api.module, line 64 - Hook implementations.
Code
function fb_instant_articles_api_entity_delete(EntityInterface $entity) {
// We're only interested in content entities.
if (!$entity instanceof ContentEntityInterface) {
return;
}
// Only attempt delete if this entity is of a bundle that is enabled for
// instant articles.
$display_id = $entity
->getEntityTypeId() . '.' . $entity
->bundle() . '.' . EntityViewDisplayEditForm::FBIA_VIEW_MODE;
if (\Drupal::entityTypeManager()
->getStorage('entity_view_display')
->load($display_id)) {
try {
/** @var \Drupal\fb_instant_articles\DrupalClient $client */
$client = \Drupal::service('fb_instant_articles.drupal_client');
$status = $client
->removeEntity($entity);
if ($status
->getStatus() === InstantArticleStatus::SUCCESS) {
\Drupal::messenger()
->addStatus(t('%label deleted from Facebook Instant Articles.', [
'%label' => $entity
->label(),
]));
}
} catch (MissingApiCredentialsException $e) {
\Drupal::messenger()
->addError(t('Error while attempting to remove entity from Facebook Instant Articles. API credentials haven\'t been configured. Visit the <a href="@api_config">Facebook Instant Articles API configuration page</a> to setup API access.', [
'@api_config' => Url::fromRoute('fb_instant_articles.api_settings_form')
->toString(),
]));
}
}
}