/**
  * Formats a response from EMDB to be themed into results.
  *
  * @param array $search_response
  *   The response.
  * @param \Drupal\embridge\EnterMediaAssetHelper $asset_helper
  *   A helper service.
  * @param string $catalog_id
  *   An ID of the catalog to save against temp assets.
  *
  * @return array
  *   A renderable array.
  */
 private function formatSearchResults(array $search_response, EnterMediaAssetHelper $asset_helper, $catalog_id)
 {
     /** @var \Drupal\Core\Entity\EntityStorageInterface $storage */
     $storage = $this->entityTypeManager->getStorage('embridge_catalog');
     /** @var \Drupal\embridge\EmbridgeCatalogInterface $catalog */
     $catalog = $storage->load($catalog_id);
     $application_id = $catalog->getApplicationId();
     $render_array = [];
     foreach ($search_response['results'] as $result) {
         $asset = $asset_helper->searchResultToAsset($result, $catalog_id);
         $render_array[$asset->id()] = ['#theme' => 'embridge_image', '#asset' => $asset, '#conversion' => 'thumb', '#link_to' => '', '#application_id' => $application_id];
     }
     return $render_array;
 }
 /**
  * {@inheritdoc}
  */
 public function deleteTemporaryAssets()
 {
     // TODO: Do we want our own config item?
     $age = $this->configFactory->get('system.file')->get('temporary_maximum_age');
     if (!$age) {
         return;
     }
     $storage = $this->entityTypeManager->getStorage('embridge_asset_entity');
     $query = $storage->getQuery();
     $query->condition('status', FILE_STATUS_PERMANENT, '<>');
     $query->condition('changed', time() - $age, '<');
     $query->range(0, 50);
     $ids = $query->execute();
     /** @var EmbridgeAssetEntityInterface[] $assets */
     $assets = $storage->loadMultiple($ids);
     foreach ($assets as $asset) {
         $asset->delete();
         $this->logger->notice('Embridge Asset "%filename" [%id] garbage collected during cron.', ['%filename' => $asset->getFilename(), '%id' => $asset->id()]);
     }
 }