From a99c4dfee0a910fb69a697d1441c470a0999826b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 13 Feb 2023 21:09:19 +1100 Subject: [PATCH] Refactor mailers --- app/Http/Middleware/TokenAuth.php | 18 ++++--- app/Providers/MultiDBProvider.php | 1 + app/Services/Email/MailEntity.php | 65 +++++++++++++++++++++++++ app/Services/Email/MailObject.php | 80 +++++++++++++++++++++++++++++++ 4 files changed, 158 insertions(+), 6 deletions(-) create mode 100644 app/Services/Email/MailEntity.php create mode 100644 app/Services/Email/MailObject.php diff --git a/app/Http/Middleware/TokenAuth.php b/app/Http/Middleware/TokenAuth.php index cc7c0230c8a1..b312e1df5263 100644 --- a/app/Http/Middleware/TokenAuth.php +++ b/app/Http/Middleware/TokenAuth.php @@ -52,12 +52,6 @@ class TokenAuth return response()->json($error, 403); } - $truth = app()->make(TruthSource::class); - - $truth->setCompanyUser($company_token->cu); - $truth->setUser($company_token->user); - $truth->setCompany($company_token->company); - $truth->setCompanyToken($company_token); /* | @@ -67,7 +61,19 @@ class TokenAuth | */ + $truth = app()->make(TruthSource::class); + + $truth->setCompanyUser($company_token->cu); + $truth->setUser($company_token->user); + $truth->setCompany($company_token->company); + $truth->setCompanyToken($company_token); + + /* + | This method binds the db to the jobs created using this + | session + */ app('queue')->createPayloadUsing(function () use ($company_token) { + nlog("setting DB ". $company_token->company->db); return ['db' => $company_token->company->db]; }); diff --git a/app/Providers/MultiDBProvider.php b/app/Providers/MultiDBProvider.php index f00a1d436693..72beb2abc594 100644 --- a/app/Providers/MultiDBProvider.php +++ b/app/Providers/MultiDBProvider.php @@ -37,6 +37,7 @@ class MultiDBProvider extends ServiceProvider JobProcessing::class, function ($event) { if (isset($event->job->payload()['db'])) { + nlog("Settings DB: " . $event->job->payload()['db']); MultiDB::setDb($event->job->payload()['db']); } } diff --git a/app/Services/Email/MailEntity.php b/app/Services/Email/MailEntity.php new file mode 100644 index 000000000000..81732f69921d --- /dev/null +++ b/app/Services/Email/MailEntity.php @@ -0,0 +1,65 @@ +invitation = $invitation; + + $this->db = $db; + + $this->reminder_template = $reminder_template; + + $this->template_data = $template_data; + + $this->override = $override; + + // $this->entity_string = $this->resolveEntityString(); + + // $this->entity = $invitation->{$this->entity_string}; + + // $this->settings = $invitation->contact->client->getMergedSettings(); + + // $this->reminder_template = $reminder_template ?: $this->entity->calculateTemplate($this->entity_string); + + // $this->html_engine = new HtmlEngine($invitation); + + // $this->template_data = $template_data; + + } + + public function handle(): void + { + MultiDB::setDb($this->db); + + //construct mailable + + //construct mailer + + } + +} diff --git a/app/Services/Email/MailObject.php b/app/Services/Email/MailObject.php new file mode 100644 index 000000000000..08a540342e02 --- /dev/null +++ b/app/Services/Email/MailObject.php @@ -0,0 +1,80 @@ +