コード例 #1
0
 /**
  * @param Request $request
  * @return static
  */
 protected function createMailing(Request $request)
 {
     $mailing = new MailingNode();
     $mailing->setNodeTypeByKey($request->input('type'));
     $locale = $this->validateLocale($request, true);
     $mailing->fill([$locale => $request->all()]);
     $mailing->makeRoot();
     $mailing->save();
     return $mailing;
 }
コード例 #2
0
 /**
  * Dispatches the mailing
  *
  * @param MailingService $mailingService
  * @param int $id
  * @param int $list
  * @return response
  */
 public function dispatchMailing(MailingService $mailingService, $id, $list)
 {
     $this->authorize('EDIT_MAILINGS');
     $mailing = MailingNode::findOrFail($id);
     $list = MailingList::findOrFail($list);
     // Before this we are in the reactor theme by default
     Theme::set(config('themes.active_mailings'));
     if ($list->type === 'mailchimp') {
         $mailingService->dispatchMailchimpMailing($mailing, $list);
     } else {
         $mailingService->dispatchDefaultMailing($mailing, $list);
     }
     $this->notify('mailings.dispatched', 'dispatched_mailing', $mailing);
     return redirect()->back();
 }
コード例 #3
0
 /**
  * Populates a mailchimp campaign content
  *
  * @param Client $client
  * @param string $mailingId
  * @param MailingNode $mailing
  * @param MailingList $list
  * @return string $campaignId
  */
 protected function makeUpdateMailchimpCampaignContentRequest(Client $client, $mailingId, MailingNode $mailing, MailingList $list)
 {
     $translation = $mailing->translateOrFirst();
     set_app_locale($translation->locale);
     $_inBrowser = false;
     $mail = view($mailing->getNodeTypeName(), compact('mailing', 'list', 'translation', '_inBrowser'))->render();
     return $client->post('campaigns/' . $mailingId . '/content', ['headers' => ['X-HTTP-Method-Override' => 'PUT'], 'json' => ['html' => $mail, 'url' => route('reactor.mailings.preview', $mailing->translateOrFirst()->node_name)]]);
 }