From 94fc8885cf60f4c40a38efe4a9ae0f9b5d4d7f56 Mon Sep 17 00:00:00 2001
From: Dave Mc Nicoll <dave.mcnicoll@cslsj.qc.ca>
Date: Wed, 31 May 2023 15:54:06 +0000
Subject: [PATCH] - Switch to Symfony Mailer from SwiftMailer - Added CSSLSJ
 new API config

---
 meta/definitions/email.php         | 6 +++---
 skeleton/.env                      | 4 ++++
 skeleton/meta/config.php           | 8 ++++++++
 skeleton/meta/definitions/auth.php | 6 +++++-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/meta/definitions/email.php b/meta/definitions/email.php
index 22901ab..508c168 100644
--- a/meta/definitions/email.php
+++ b/meta/definitions/email.php
@@ -4,12 +4,12 @@ use function DI\autowire, DI\create, DI\get;
 
 use TheBugs\Email\EmailConfiguration,
     TheBugs\Email\MailerInterface,
-    TheBugs\Email\SwiftMailer;
+    TheBugs\Email\SymfonyMailer;
 
 return [
     EmailConfiguration::class => function($c) {
         $email = new EmailConfiguration( EmailConfiguration::AUTH_TYPE_SMTP );
-        $email->smtpHost = getenv('SMTP_HOST');
+        $email->smtpHost = getenv('SMTP_HOSTNAME');
         $email->smtpPort = getenv('SMTP_PORT');
         $email->smtpUsername = getenv('SMTP_USERNAME');
         $email->smtpPassword = getenv('SMTP_PASSWORD');
@@ -20,5 +20,5 @@ return [
         return $email;
     },
 
-    MailerInterface::class => autowire(SwiftMailer::class),
+    MailerInterface::class => autowire(SymfonyMailer::class),
 ];
diff --git a/skeleton/.env b/skeleton/.env
index 57ff9c5..cf8e6b3 100644
--- a/skeleton/.env
+++ b/skeleton/.env
@@ -22,6 +22,10 @@ DEFAULT_LOCAL = "fr_CA.UTF-8"
 DEFAULT_TIME = "fr.UTF-8"
 DEFAULT_TIME_FALLBACK = "french.UTF-8"
 
+CSSLSJ_API_URL = "http://api-dev.cslsj.qc.ca"
+CSSLSJ_API_USERNAME = "dev"
+CSSLSJ_API_PASSWORD = "dev"
+
 # MS Authentication
 # MS_OAUTH_CLIENT_ID = ""
 # MS_OAUTH_CLIENT_SECRET = ""
diff --git a/skeleton/meta/config.php b/skeleton/meta/config.php
index 99fbb40..68fd37f 100644
--- a/skeleton/meta/config.php
+++ b/skeleton/meta/config.php
@@ -17,6 +17,14 @@ return [
         'application_name' => "",
     ],
 
+    'api' => [
+        'auth' => [
+            'type' => \CSLSJ\Api\AuthType::AUTH_HEADER_BASIC,
+            'username' => getenv('CSSLSJ_API_USERNAME'),
+            'password' => getenv('CSSLSJ_API_PASSWORD'),
+        ]
+    ],
+
     'ulmus' => [
         'connections' => [
             'default' => [
diff --git a/skeleton/meta/definitions/auth.php b/skeleton/meta/definitions/auth.php
index c07a3d9..5b29ebe 100644
--- a/skeleton/meta/definitions/auth.php
+++ b/skeleton/meta/definitions/auth.php
@@ -50,9 +50,13 @@ return [
         };
     },
 
+    CSLSJ\Api\Client::class => create(CSLSJ\Api\Client::class)->constructor(get('api.authentication'), getenv('CSSLSJ_API_URL')),
+
+    'api.authentication' => function ($c) { return $c->get('config')['api']['auth']; },
+
     EmailConfiguration::class => function($c) {
         $email = new EmailConfiguration( EmailConfiguration::AUTH_TYPE_SMTP );
-        $email->smtpHost = getenv('SMTP_HOST');
+        $email->smtpHost = getenv('SMTP_HOSTNAME');
         $email->smtpPort = getenv('SMTP_PORT');
         $email->smtpUsername = getenv('SMTP_USERNAME');
         $email->smtpPassword = getenv('SMTP_PASSWORD');