From b629b9dcba4c0a058ea0b48eb41b94a70111aa8c Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 8 Jun 2021 20:39:07 +1000 Subject: [PATCH] Better logging for company importer --- app/Console/Commands/SendTestEmails.php | 118 ++++++------------------ app/Jobs/Company/CompanyImport.php | 2 +- 2 files changed, 31 insertions(+), 89 deletions(-) diff --git a/app/Console/Commands/SendTestEmails.php b/app/Console/Commands/SendTestEmails.php index be96efc1a3..47aafe867e 100644 --- a/app/Console/Commands/SendTestEmails.php +++ b/app/Console/Commands/SendTestEmails.php @@ -17,6 +17,9 @@ use App\Factory\ClientFactory; use App\Factory\InvoiceFactory; use App\Factory\InvoiceInvitationFactory; use App\Jobs\Invoice\CreateEntityPdf; +use App\Jobs\Mail\NinjaMailerJob; +use App\Jobs\Mail\NinjaMailerObject; +use App\Mail\Migration\MaxCompanies; use App\Mail\TemplateEmail; use App\Models\Account; use App\Models\Client; @@ -59,101 +62,40 @@ class SendTestEmails extends Command * @return mixed */ public function handle() - { - $this->sendTemplateEmails('plain'); - $this->sendTemplateEmails('light'); - $this->sendTemplateEmails('dark'); - } - - private function sendTemplateEmails($template) { $faker = Factory::create(); - $message = [ - 'title' => 'Invoice XJ-3838', - 'body' => '
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
', - 'subject' => 'The Test Subject', - 'footer' => 'Lovely Footer Texts', - ]; + $account = Account::factory()->create(); - $user = User::whereEmail('user@example.com')->first(); + $user = User::factory()->create([ + 'account_id' => $account->id, + 'confirmation_code' => '123', + 'email' => $faker->safeEmail, + 'first_name' => 'John', + 'last_name' => 'Doe', + ]); - if (! $user) { - $account = Account::factory()->create(); + $company = Company::factory()->create([ + 'account_id' => $account->id, + ]); - $user = User::factory()->create([ - 'account_id' => $account->id, - 'confirmation_code' => '123', - 'email' => $faker->safeEmail, - 'first_name' => 'John', - 'last_name' => 'Doe', - ]); + $user->companies()->attach($company->id, [ + 'account_id' => $account->id, + 'is_owner' => 1, + 'is_admin' => 1, + 'is_locked' => 0, + 'permissions' => '', + 'notifications' => CompanySettings::notificationDefaults(), + //'settings' => DefaultSettings::userSettings(), + 'settings' => null, + ]); - $company = Company::factory()->create([ - 'account_id' => $account->id, - ]); - - $user->companies()->attach($company->id, [ - 'account_id' => $account->id, - 'is_owner' => 1, - 'is_admin' => 1, - 'is_locked' => 0, - 'permissions' => '', - 'notifications' => CompanySettings::notificationDefaults(), - //'settings' => DefaultSettings::userSettings(), - 'settings' => null, - ]); - } else { - $company = $user->company_users->first()->company; - $account = $company->account; - } - - $client = Client::all()->first(); - - if (! $client) { - $client = ClientFactory::create($company->id, $user->id); - $client->save(); - - ClientContact::factory()->create([ - 'user_id' => $user->id, - 'client_id' => $client->id, - 'company_id' => $company->id, - 'is_primary' => 1, - 'send_email' => true, - 'email' => $faker->safeEmail, - ]); - - ClientContact::factory()->create([ - 'user_id' => $user->id, - 'client_id' => $client->id, - 'company_id' => $company->id, - 'send_email' => true, - 'email' => $faker->safeEmail, - ]); - } - - $invoice = InvoiceFactory::create($company->id, $user->id); - $invoice->client_id = $client->id; - $invoice->setRelation('client', $client); - $invoice->save(); - - $ii = InvoiceInvitationFactory::create($invoice->company_id, $invoice->user_id); - $ii->invoice_id = $invoice->id; - $ii->client_contact_id = $client->primary_contact()->first()->id; - $ii->save(); - - $invoice->setRelation('invitations', $ii); - $invoice->service()->markSent()->save(); - - CreateEntityPdf::dispatch($invoice->invitations()->first()); - - $cc_emails = [config('ninja.testvars.test_email')]; - $bcc_emails = [config('ninja.testvars.test_email')]; - - - $email_builder->setFooter($message['footer']) - ->setSubject($message['subject']) - ->setBody($message['body']); + $nmo = new NinjaMailerObject; + $nmo->mailable = new MaxCompanies($user->account->companies()->first()); + $nmo->company = $user->account->companies()->first(); + $nmo->settings = $user->account->companies()->first()->settings; + $nmo->to_user = $user; + NinjaMailerJob::dispatchNow($nmo); } } diff --git a/app/Jobs/Company/CompanyImport.php b/app/Jobs/Company/CompanyImport.php index 757595b931..e04794db35 100644 --- a/app/Jobs/Company/CompanyImport.php +++ b/app/Jobs/Company/CompanyImport.php @@ -278,7 +278,7 @@ class CompanyImport implements ShouldQueue //perform some magic here } - if($this->pre_flight_checks_pass === false) + if(!$this->pre_flight_checks_pass) { $nmo = new NinjaMailerObject; $nmo->mailable = new CompanyImportFailure($this->company, $this->message);