/**
  * 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);
         }
     }
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 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);
 }