. */ declare(strict_types=1); namespace FireflyIII\Handlers\Events; use Exception; use FireflyIII\Events\RequestedReportOnJournals; use FireflyIII\Mail\ReportNewJournalsMail; use FireflyIII\Repositories\User\UserRepositoryInterface; use Log; use Mail; /** * Class AutomationHandler */ class AutomationHandler { /** * Respond to the creation of X journals. * * @param RequestedReportOnJournals $event * * @return bool */ public function reportJournals(RequestedReportOnJournals $event): bool { $sendReport = config('firefly.send_report_journals'); if (false === $sendReport) { return true; // @codeCoverageIgnore } Log::debug('In reportJournals.'); /** @var UserRepositoryInterface $repository */ $repository = app(UserRepositoryInterface::class); $user = $repository->findNull($event->userId); if (null !== $user && 0 !== $event->groups->count()) { $email = $user->email; // see if user has alternative email address: $pref = app('preferences')->getForUser($user, 'remote_guard_alt_email', null); if (null !== $pref) { $email = $pref->data; } // if user is demo user, send to owner: if($user->hasRole('demo')) { $email = config('firefly.site_owner'); } try { Log::debug('Trying to mail...'); Mail::to($user->email)->send(new ReportNewJournalsMail($email, '127.0.0.1', $event->groups)); // @codeCoverageIgnoreStart } catch (Exception $e) { Log::debug('Send message failed! :('); Log::error($e->getMessage()); Log::error($e->getTraceAsString()); } // @codeCoverageIgnoreEnd Log::debug('Done!'); } return true; } }