withPageTitle(Setting::get('app_name')) ->withAboutApp(Markdown::convertToHtml(Setting::get('app_about'))); } /** * Handle the subscribe user. * * @return \Illuminate\View\View */ public function postSubscribe() { try { $subscriber = Subscriber::create(['email' => Binput::get('email')]); } catch (ValidationException $e) { return Redirect::back() ->withInput(Binput::all()) ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('cachet.subscriber.email.failure'))) ->withErrors($e->getMessageBag()); } event(new CustomerHasSubscribedEvent($subscriber)); return Redirect::route('status-page') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.subscriber.email.subscribed'))); } /** * Handle the verify subscriber email. * * @param string|null $code * * @return \Illuminate\View\View */ public function getVerify($code = null) { if (is_null($code)) { throw new NotFoundHttpException(); } $subscriber = Subscriber::where('verify_code', '=', $code)->first(); if (!$subscriber || $subscriber->verified()) { return Redirect::route('status-page'); } $subscriber->verified_at = Carbon::now(); $subscriber->save(); return Redirect::route('status-page') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.subscriber.email.verified'))); } /** * Handle the unsubscribe. * * @param string|null $code * * @return \Illuminate\View\View */ public function getUnsubscribe($code = null) { if (is_null($code)) { throw new NotFoundHttpException(); } $subscriber = Subscriber::where('verify_code', '=', $code)->first(); if (!$subscriber || !$subscriber->verified()) { return Redirect::route('status-page'); } $subscriber->delete(); return Redirect::route('status-page') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.subscriber.email.unsuscribed'))); } }