From 8f8509560cc89982cf46ad635f3ac6152aeb3cb0 Mon Sep 17 00:00:00 2001
From: Eric Bremner <ebremner@uwaterloo.ca>
Date: Mon, 19 Sep 2022 13:39:22 -0400
Subject: [PATCH] ISTWCMS-5753: adding DI for uw content report

---
 src/Controller/UwDownloadCsvController.php | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/Controller/UwDownloadCsvController.php b/src/Controller/UwDownloadCsvController.php
index 58412d2c..ffd67263 100644
--- a/src/Controller/UwDownloadCsvController.php
+++ b/src/Controller/UwDownloadCsvController.php
@@ -5,6 +5,7 @@ namespace Drupal\uw_cfg_common\Controller;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\path_alias\AliasManager;
+use Drupal\transliterate_filenames\SanitizeName;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\Response;
 
@@ -27,6 +28,13 @@ class UwDownloadCsvController extends ControllerBase {
    */
   protected $pathAlias;
 
+  /**
+   * Sanitize name.
+   *
+   * @var Drupal\transliterate_filenames\SanitizeName
+   */
+  protected $sanitizeName;
+
   /**
    * CSV Report constructor.
    *
@@ -34,13 +42,18 @@ class UwDownloadCsvController extends ControllerBase {
    *   The entity type manager.
    * @param Drupal\path_alias\AliasManager $pathAlias
    *   The path alias.
+   * @param Drupal\transliterate_filenames\SanitizeName $sanitizeName
+   *   The sanitize name.
    */
   public function __construct(
     EntityTypeManagerInterface $entityTypeManager,
-    AliasManager $pathAlias
+    AliasManager $pathAlias,
+    SanitizeName $sanitizeName
   ) {
+
     $this->entityTypeManager = $entityTypeManager;
     $this->pathAlias = $pathAlias;
+    $this->sanitizeName = $sanitizeName;
   }
 
   /**
@@ -49,7 +62,8 @@ class UwDownloadCsvController extends ControllerBase {
   public static function create(ContainerInterface $container) {
     return new static(
       $container->get('entity_type.manager'),
-      $container->get('path_alias.manager')
+      $container->get('path_alias.manager'),
+      $container->get('transliterate_filenames.sanitize_name')
     );
   }
 
@@ -114,8 +128,9 @@ class UwDownloadCsvController extends ControllerBase {
       // Determine the filename for the CSV.
       $sitename = \Drupal::config('system.site')->get('name');
       $filename = $sitename . '_content_report.csv';
+
       // Make sure we are using a safe filename.
-      $filename = \Drupal::service('transliterate_filenames.sanitize_name')->sanitizeFilename($filename);
+      $filename = $this->sanitizeName->sanitizeFilename($filename);
 
       // Set the headers for the CSV.
       $response->headers->set('Content-Type', 'text/csv');
-- 
GitLab