. */ declare(strict_types=1); namespace FireflyIII\Handlers\Events; use FireflyIII\Notifications\User\NewAccessToken; use FireflyIII\Repositories\User\UserRepositoryInterface; use Illuminate\Support\Facades\Notification; use Laravel\Passport\Events\AccessTokenCreated; use Exception; /** * Class APIEventHandler */ class APIEventHandler { /** * Respond to the creation of an access token. */ public function accessTokenCreated(AccessTokenCreated $event): void { app('log')->debug(__METHOD__); /** @var UserRepositoryInterface $repository */ $repository = app(UserRepositoryInterface::class); $user = $repository->find((int) $event->userId); if (null !== $user) { try { Notification::send($user, new NewAccessToken()); } catch (Exception $e) { $message = $e->getMessage(); if (str_contains($message, 'Bcc')) { app('log')->warning('[Bcc] Could not send notification. Please validate your email settings, use the .env.example file as a guide.'); return; } if (str_contains($message, 'RFC 2822')) { app('log')->warning('[RFC] Could not send notification. Please validate your email settings, use the .env.example file as a guide.'); return; } app('log')->error($e->getMessage()); app('log')->error($e->getTraceAsString()); } } } }