/** * Dispatches Mailchimp mailing * * @param MailingNode $mailing * @param MailingList $list */ public function dispatchMailchimpMailing(MailingNode $mailing, MailingList $list) { $client = $this->getNewMailchimpGuzzleClient(); $mailingId = $mailing->getExternalId($list->getKey()); if ($this->isMailchimpCampaignUpdateable($client, $mailingId)) { $this->makeUpdateMailchimpCampaignRequest($client, $mailingId, $mailing, $list); } else { $response = $this->makeCreateMailchimpCampaignRequest($client, $mailing, $list); $mailingId = $response->json()['id']; $mailing->setExternalId($list->getKey(), $mailingId); } $this->makeUpdateMailchimpCampaignContentRequest($client, $mailingId, $mailing, $list); }
/** * Checks if a member is subscribed to a list * * @param Subscriber $subscriber * @param MailingList $list */ protected function isMemberSubscribedTo(Subscriber $subscriber, MailingList $list) { return $subscriber->lists->contains($list->getKey()); }