/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $fields = $request->except("_token"); $subscribersList = SubscribersList::find($id); $subscribersList->update(['name' => $fields['name']]); return redirect()->back()->with('status', "Updated Successful."); }
/** * Bootstrap any application services. * * @return void */ public function boot() { Validator::resolver(function ($translator, $data, $rules, $messages) { return new CustomValidator($translator, $data, $rules, $messages); }); Validator::extend('unique_subscribers_list_email', function ($attribute, $value, $parameters) { $subscribers_list_id = $parameters[0]; $email = $parameters[1]; $subscriberId = intval($parameters[2]); $subscriber = SubscribersList::find($subscribers_list_id)->subscribers()->where('email', $email)->first(); return !$subscriber || $subscriber->id == $subscriberId; }, "There is already another subscriber with the email address in current list."); }
/** * Stores bulk subscribers create request. * * @param \Illuminate\Http\Request $request */ public function store(Request $request, $userId, $subscribersListId) { $subscribers = Input::get('subscribers'); $list = SubscribersList::find($subscribersListId); foreach ($subscribers as $subscriber) { if ($list->subscribers()->where('email', $subscriber['email'])->count() == 0) { $subscriber['status'] = 'Active'; $subscriber = Subscriber::create($subscriber); $subscriber->uuid = hashSubscriber($subscriber->id); $subscriber->save(); $subscriber->subscribers_lists()->attach($subscribersListId); } } }
public function subscribers(Request $request) { $list_id = $request->list_id; $q = $request->q; if ($q != null) { $subscribers = SubscribersList::find($list_id)->subscribers()->where('email', 'like', '%' . $q . '%')->orderBy('created_at', 'desc')->take(50)->get(); $this->data['subscribers'] = $subscribers; } else { $subscribers = SubscribersList::find($list_id)->subscribers()->orderBy('created_at', 'desc')->take(50)->get(); $this->data['subscribers'] = $subscribers; } $this->data['list'] = SubscribersList::find($list_id); $this->data['num_subscribers'] = $subscribers = SubscribersList::find($list_id)->subscribers()->count(); return view('manage.email.subscribers', $this->data); }
public function send_more_list(Request $request) { $cam = EmailCampaign::find($request->cam_id); $lists = explode(',', $request->list_id); $lists_array = array(); $list_ids = array(); foreach ($lists as $l) { $t = explode('=', $l); $lists_array[] = SubscribersList::find($t[1]); $list_ids[] = $t[1]; $cam->subscribers_lists()->attach($t[1]); } $take = 5; $delay = 40; $total_mails = 0; foreach ($lists_array as $l) { $total_mails += $l->subscribers()->count(); } $nums_jobs = $total_mails / $take; for ($i = 0; $i < $nums_jobs; $i++) { $job = (new SendMarketingEmail($cam, $list_ids, $i * $take, $take))->delay($i * $delay); $this->dispatch($job); } $cam->send_time = $cam->send_time + $nums_jobs * $delay; $cam->save(); return redirect('manage/campaign?id=' . $cam->id); }