Improve resolution of invitations

This commit is contained in:
David Bomba 2022-02-27 18:33:29 +11:00
parent 2630f62dfb
commit e964ff8137
3 changed files with 11 additions and 6 deletions

View File

@ -264,15 +264,18 @@ class InvitationController extends Controller
abort(404, "Invoice not found");
}
public function unsubscribe(Request $request, string $invitation_key)
public function unsubscribe(Request $request, string $entity_type, string $invitation_key)
{
if($invite = InvoiceInvitation::withTrashed()->where('key', $invitation_key)->first()){
if($entity_type == 'invoice'){
$invite = InvoiceInvitation::withTrashed()->where('key', $invitation_key)->first();
$invite->contact->send_email = false;
$invite->contact->save();
}elseif($invite = QuoteInvitation::withTrashed()->where('key', $invitation_key)->first()){
}elseif($entity_type == 'quote'){
$invite = QuoteInvitation::withTrashed()->where('key', $invitation_key)->first();
$invite->contact->send_email = false;
$invite->contact->save();
}elseif($invite = CreditInvitation::withTrashed()->where('key', $invitation_key)->first()){
}elseif($entity_type == 'credit'){
$invite = CreditInvitation::withTrashed()->where('key', $invitation_key)->first();
$invite->contact->send_email = false;
$invite->contact->save();
}

View File

@ -62,7 +62,9 @@ trait Inviteable
else
$domain = config('ninja.app_url');
return $domain.'/client/unsubscribe/'.$this->key;
$entity_type = Str::snake(class_basename($this->entityType()));
return $domain.'/client/unsubscribe/'.$entity_type.'/'.$this->key;
}

View File

@ -114,7 +114,7 @@ Route::group(['middleware' => ['invite_db'], 'prefix' => 'client', 'as' => 'clie
Route::get('{entity}/{invitation_key}/download', 'ClientPortal\InvitationController@routerForDownload');
Route::get('pay/{invitation_key}', 'ClientPortal\InvitationController@payInvoice')->name('pay.invoice');
Route::get('unsubscribe/{invitation_key}', 'ClientPortal\InvitationController@unsubscribe')->name('unsubscribe');
Route::get('unsubscribe/{entity_type}/{invitation_key}', 'ClientPortal\InvitationController@unsubscribe')->name('unsubscribe');
// Route::get('{entity}/{client_hash}/{invitation_key}', 'ClientPortal\InvitationController@routerForIframe')->name('invoice.client_hash_and_invitation_key'); //should never need this