. */ namespace Poniverse\Ponyfm\Http\Controllers; use App; use Auth; use DB; use Poniverse\Ponyfm\Models\Email; use Poniverse\Ponyfm\Models\EmailSubscription; use View; class NotificationsController extends Controller { /** * @param $emailKey * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function getEmailClick($emailKey) { /** @var Email $email */ $email = Email::findOrFail($emailKey); DB::transaction(function() use ($email) { $email->emailClicks()->create(['ip_address' => \Request::ip()]); $email->notification->is_read = true; $email->notification->save(); }); return redirect($email->getActivity()->url); } public function getEmailUnsubscribe($subscriptionKey) { /** @var EmailSubscription $subscription */ $subscription = EmailSubscription::findOrFail($subscriptionKey); $subscription->delete(); if (Auth::check() && $subscription->user->id === Auth::user()->id) { return redirect(route('account:settings', [ 'slug' => $subscription->user->slug, 'unsubscribedMessageKey' => $subscription->activity_type ]), 303); } else { return redirect(route('email:confirm-unsubscribed', [ 'unsubscribedUser' => $subscription->user->display_name, 'unsubscribedMessageKey' => $subscription->activity_type ]), 303); } } public function getEmailUnsubscribePage() { return View::make('shared.null'); } }