PATH:
home
/
lab2454c
/
.trash
/
core
/
vendor
/
sendgrid
/
sendgrid
/
lib
/
mail
<?php /** * This helper builds the Personalization object for a /mail/send API call */ namespace SendGrid\Mail; use SendGrid\Helper\Assert; /** * This class is used to construct a Personalization object for * the /mail/send API call * * Each Personalization can be thought of as an envelope - it defines * who should receive an individual message and how that message should be handled * * @package SendGrid\Mail */ class Personalization implements \JsonSerializable { /** @var $tos To[] objects */ private $tos; /** @var $ccs Cc[] objects */ private $ccs; /** @var $bccs Bcc[] objects */ private $bccs; /** @var $subject Subject object */ private $subject; /** @var $headers Header[] array of header key values */ private $headers; /** @var $substitutions Substitution[] array of substitution key values, used for legacy templates */ private $substitutions; /** @var array of dynamic template data key values */ private $dynamic_template_data; /** @var bool if we are using dynamic templates this will be true */ private $has_dynamic_template = false; /** @var $custom_args CustomArg[] array of custom arg key values */ private $custom_args; /** @var $send_at SendAt object */ private $send_at; /** * Add a To object to a Personalization object * * @param To $email To object */ public function addTo($email) { $this->tos[] = $email; } /** * Retrieve To object(s) from a Personalization object * * @return To[] */ public function getTos() { return $this->tos; } /** * Add a Cc object to a Personalization object * * @param Cc $email Cc object */ public function addCc($email) { $this->ccs[] = $email; } /** * Retrieve Cc object(s) from a Personalization object * * @return Cc[] */ public function getCcs() { return $this->ccs; } /** * Add a Bcc object to a Personalization object * * @param Bcc $email Bcc object */ public function addBcc($email) { $this->bccs[] = $email; } /** * Retrieve Bcc object(s) from a Personalization object * * @return Bcc[] */ public function getBccs() { return $this->bccs; } /** * Add a subject object to a Personalization object * * @param Subject|string $subject Subject object or string * * @throws TypeException */ public function setSubject($subject) { if (!($subject instanceof Subject)) { Assert::string($subject, 'subject', '"$subject" must be an instance of SendGrid\Mail\Subject or a string'); $subject = new Subject($subject); } $this->subject = $subject; } /** * Retrieve a Subject object from a Personalization object * * @return Subject|null */ public function getSubject() { return $this->subject; } /** * Add a Header object to a Personalization object * * @param Header $header Header object */ public function addHeader($header) { Assert::isInstanceOf($header, 'header', Header::class); $this->headers[$header->getKey()] = $header->getValue(); } /** * Retrieve header key/value pairs from a Personalization object * * @return array|null */ public function getHeaders() { return $this->headers; } /** * Add a Substitution object or key/value to a Personalization object * * @param Substitution|string $data DynamicTemplateData object or the key of a * dynamic data * @param string|null $value The value of dynamic data * * @throws TypeException */ public function addDynamicTemplateData($data, $value = null) { $this->addSubstitution($data, $value); } /** * Retrieve dynamic template data key/value pairs from a Personalization object * * @return array|null */ public function getDynamicTemplateData() { return $this->getSubstitutions(); } /** * Add a Substitution object or key/value to a Personalization object * * @param Substitution|string $substitution Substitution object or the key of a * substitution * @param string|null $value The value of a substitution * * @throws TypeException */ public function addSubstitution($substitution, $value = null) { if (!($substitution instanceof Substitution)) { $key = $substitution; $substitution = new Substitution($key, $value); } $this->substitutions[$substitution->getKey()] = $substitution->getValue(); } /** * Retrieve substitution key/value pairs from a Personalization object * * @return array|null */ public function getSubstitutions() { return $this->substitutions; } /** * Add a CustomArg object to a Personalization object * * @param CustomArg $custom_arg CustomArg object * * @throws TypeException */ public function addCustomArg($custom_arg) { Assert::isInstanceOf($custom_arg, 'custom_arg', CustomArg::class); $this->custom_args[$custom_arg->getKey()] = (string)$custom_arg->getValue(); } /** * Retrieve custom arg key/value pairs from a Personalization object * * @return array|null */ public function getCustomArgs() { return $this->custom_args; } /** * Add a SendAt object to a Personalization object * * @param SendAt $send_at SendAt object * * @throws TypeException */ public function setSendAt($send_at) { Assert::isInstanceOf($send_at, 'send_at', SendAt::class); $this->send_at = $send_at; } /** * Retrieve a SendAt object from a Personalization object * * @return SendAt|null */ public function getSendAt() { return $this->send_at; } /** * Specify if this personalization is using dynamic templates * * @param bool $has_dynamic_template are we using dynamic templates * * @throws TypeException */ public function setHasDynamicTemplate($has_dynamic_template) { Assert::boolean($has_dynamic_template, 'has_dynamic_template'); $this->has_dynamic_template = $has_dynamic_template; } /** * Determine if this Personalization object is using dynamic templates * * @return bool */ public function getHasDynamicTemplate() { return $this->has_dynamic_template; } /** * Return an array representing a Personalization object for the Twilio SendGrid API * * @return null|array */ public function jsonSerialize() { if ($this->getHasDynamicTemplate()) { $dynamic_substitutions = $this->getSubstitutions(); $substitutions = null; } else { $substitutions = $this->getSubstitutions(); $dynamic_substitutions = null; } return array_filter( [ 'to' => $this->getTos(), 'cc' => $this->getCcs(), 'bcc' => $this->getBccs(), 'subject' => $this->getSubject(), 'headers' => $this->getHeaders(), 'substitutions' => $substitutions, 'dynamic_template_data' => $dynamic_substitutions, 'custom_args' => $this->getCustomArgs(), 'send_at' => $this->getSendAt() ], static function ($value) { return $value !== null; } ) ?: null; } }
[-] Mail.php
[edit]
[-] Footer.php
[edit]
[-] PlainTextContent.php
[edit]
[-] From.php
[edit]
[-] BccSettings.php
[edit]
[-] Section.php
[edit]
[-] Cc.php
[edit]
[-] Asm.php
[edit]
[-] EmailAddress.php
[edit]
[-] CustomArg.php
[edit]
[-] Ganalytics.php
[edit]
[+]
..
[-] SpamCheck.php
[edit]
[-] SendAt.php
[edit]
[-] SubscriptionTracking.php
[edit]
[-] GroupsToDisplay.php
[edit]
[-] TemplateId.php
[edit]
[-] BatchId.php
[edit]
[-] Content.php
[edit]
[-] Subject.php
[edit]
[-] Category.php
[edit]
[-] Attachment.php
[edit]
[-] IpPoolName.php
[edit]
[-] Header.php
[edit]
[-] TypeException.php
[edit]
[-] MimeType.php
[edit]
[-] ClickTracking.php
[edit]
[-] OpenTracking.php
[edit]
[-] TrackingSettings.php
[edit]
[-] HtmlContent.php
[edit]
[-] BypassListManagement.php
[edit]
[-] To.php
[edit]
[-] ReplyTo.php
[edit]
[-] Personalization.php
[edit]
[-] SandBoxMode.php
[edit]
[-] GroupId.php
[edit]
[-] Bcc.php
[edit]
[-] Substitution.php
[edit]
[-] MailSettings.php
[edit]