/** * Remove an list from the specified resource. * * @param Request $request * @param int $id * @return Response */ public function dissociateList(Request $request, $id) { $this->authorize('EDIT_MAILINGLISTS'); $subscriber = Subscriber::findOrFail($id); $subscriber->dissociateList($request->input('list')); $this->notify('mailing_lists.dissociated', 'dissociated_list_from_subscriber', $subscriber); return redirect()->route('reactor.subscribers.lists', $id); }
/** * Subscribes an email to a list * (depending on the list type) * * @param string email * @param string $list */ public function subscribeMemberTo($email, $list) { $subscriber = Subscriber::firstOrCreate(compact('email')); $list = MailingList::findOrFail($list); if ($this->isMemberSubscribedTo($subscriber, $list)) { return; } $list->subscribers()->attach($subscriber); if ($list->type === 'mailchimp') { $this->subscribeToMailchimpList($subscriber, $list); } }
/** * @param Request $request * @param Subscriber $subscriber */ protected function validateEditForm(Request $request, Subscriber $subscriber) { $this->validateForm('Reactor\\Html\\Forms\\Subscribers\\CreateEditForm', $request, ['email' => 'required|email|max:255|unique:subscribers,email,' . $subscriber->getKey()]); }