first(); if ($invitation) { if ((bool)$invitation->contact->client->getSetting('enable_client_portal_password') !== false) { $this->middleware('auth:contact'); } else { auth()->guard('contact')->login($invitation->contact, true); } if (!request()->has('silent') && !$invitation->viewed_date) { // if (!request()->has('silent')) { $invitation->markViewed(); event(new InvitationWasViewed($invitation->{$entity}, $invitation, $invitation->{$entity}->company, Ninja::eventVars())); $this->fireEntityViewedEvent($invitation, $entity); } return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key})]); } else { abort(404); } } private function fireEntityViewedEvent($invitation, $entity_string) { switch ($entity_string) { case 'invoice': event(new InvoiceWasViewed($invitation, $invitation->company, Ninja::eventVars())); break; case 'quote': event(new QuoteWasViewed($invitation, $invitation->company, Ninja::eventVars())); break; case 'credit': event(new CreditWasViewed($invitation, $invitation->company, Ninja::eventVars())); break; default: # code... break; } } public function routerForDownload(string $entity, string $invitation_key) { return redirect('client/'.$entity.'/'.$invitation_key.'/download_pdf'); } public function routerForIframe(string $entity, string $client_hash, string $invitation_key) { } }