public function StatusReportDetailsController::getWebhookDetails in Acquia Content Hub 8.2
Returns the "Webhook Details" Section.
Return value
array Renderable array.
Throws
\Exception
1 string reference to 'StatusReportDetailsController::getWebhookDetails'
- acquia_contenthub_publisher.routing.yml in modules/
acquia_contenthub_publisher/ acquia_contenthub_publisher.routing.yml - modules/acquia_contenthub_publisher/acquia_contenthub_publisher.routing.yml
File
- modules/
acquia_contenthub_publisher/ src/ Controller/ StatusReportDetailsController.php, line 64
Class
- StatusReportDetailsController
- Controller for status report details.
Namespace
Drupal\acquia_contenthub_publisher\ControllerCode
public function getWebhookDetails(string $uuid) {
$client_entity = $this->client
->getEntity($uuid);
if (!$client_entity instanceof ClientCDFObject) {
return [];
}
if ($client_entity
->getType() != 'client') {
return [];
}
$webhook = $client_entity
->getMetadata()['settings']['webhook'];
$webhook_uuid = $webhook['uuid'];
$webhook_url = $webhook['settings_url'];
$content['single_details_page'] = [
'#type' => 'html_tag',
'#tag' => 'div',
'#attributes' => [
'id' => 'single_details_page',
],
'#value' => '',
];
$content['single_details_page']['details'] = [
'#type' => 'html_tag',
'#tag' => 'div',
'#attributes' => [
'id' => 'single_details',
],
];
$content['single_details_page']['details']['webhook_subheader'] = [
'#type' => 'html_tag',
'#tag' => 'h2',
'#value' => $this
->t('Webhook Details'),
];
$content['single_details_page']['details']['webhook_url'] = [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $this
->t('<label>Domain</label>@url', [
'@url' => $webhook_url,
]),
];
$content['single_details_page']['details']['webhook_uuid'] = [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $this
->t('<label>UUID</label>@uuid', [
'@uuid' => $webhook_uuid,
]),
];
// If this client has no interests, stop processing.
try {
$interests = $this->client
->getInterestsByWebhook($webhook_uuid);
} catch (\Exception $e) {
$interests = [];
}
if (empty($interests)) {
$content['single_details_page']['details']['no_details'] = [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $this
->t('<label>Status</label>No syndication data found'),
];
return $content;
}
foreach ($client_entity
->getMetadata()['metrics'] as $type => $metrics) {
$data_type = 'data';
$data = $metrics[$data_type] ?? [];
if (empty($data) || !is_array($data)) {
continue;
}
$total = array_sum($data);
$status = implode(', ', array_map(function ($v, $k) {
return sprintf("%s %s", $v, $k);
}, $data, array_keys($data)));
$content['single_details_page']['details'][$type . '_details'] = [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $this
->t('<label>@type Status</label>@status out of @total entities', [
'@type' => ucfirst($type),
'@status' => $status,
'@total' => $total,
]),
];
$content['single_details_page']['details'][$type . '_updated'] = [
'#type' => 'html_tag',
'#tag' => 'p',
'#value' => $this
->t('<label>Last Updated</label>@date', [
'@date' => $this
->getTime($client_entity
->getMetadata()['metrics'][$type]['last_updated']),
'@total' => $total,
]),
];
$content['single_details_page'][$type . '_graph'] = [
'#type' => 'html_tag',
'#tag' => 'div',
'#attributes' => [
'id' => $type . '_chart',
],
'#value' => '',
];
foreach ($data as $k => $v) {
$content['#attached']['drupalSettings']['acquia_contenthub_' . $type . '_status'][$k] = $v;
$content['#attached']['drupalSettings']['acquia_contenthub_' . $type . '_color'][$k] = $this->graphColors[$k];
}
if ($total > 0) {
$content['#attached']['drupalSettings']['acquia_contenthub_' . $type . '_status']['total'] = $total;
}
}
$content['#attached']['library'][] = 'acquia_contenthub_publisher/acquia_contenthub_publisher_details';
$content['#attached']['library'][] = 'acquia_contenthub_publisher/google_charts';
return $content;
}