summaryrefslogtreecommitdiff
path: root/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php')
-rw-r--r--Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php252
1 files changed, 252 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php b/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php
new file mode 100644
index 0000000..271ec06
--- /dev/null
+++ b/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php
@@ -0,0 +1,252 @@
+<?php
+/**
+ * This helper builds the TrackingSettings object for a /mail/send API call
+ *
+ * PHP Version - 5.6, 7.0, 7.1, 7.2
+ *
+ * @package SendGrid\Mail
+ * @author Elmer Thomas <dx@sendgrid.com>
+ * @copyright 2018-19 Twilio SendGrid
+ * @license https://opensource.org/licenses/MIT The MIT License
+ * @version GIT: <git_id>
+ * @link http://packagist.org/packages/sendgrid/sendgrid
+ */
+
+namespace SendGrid\Mail;
+
+/**
+ * This class is used to construct a TrackingSettings object for the
+ * /mail/send API call
+ *
+ * @package SendGrid\Mail
+ */
+class TrackingSettings implements \JsonSerializable
+{
+ /** @var $click_tracking ClickTracking object */
+ private $click_tracking;
+ /** @var $open_tracking OpenTracking object */
+ private $open_tracking;
+ /** @var $subscription_tracking SubscriptionTracking object */
+ private $subscription_tracking;
+ /** @var $ganalytics Ganalytics object */
+ private $ganalytics;
+
+ /**
+ * Optional constructor
+ *
+ * @param ClickTracking|null $click_tracking ClickTracking object
+ * @param OpenTracking|null $open_tracking OpenTracking object
+ * @param SubscriptionTracking|null $subscription_tracking SubscriptionTracking
+ * object
+ * @param Ganalytics|null $ganalytics Ganalytics object
+ */
+ public function __construct(
+ $click_tracking = null,
+ $open_tracking = null,
+ $subscription_tracking = null,
+ $ganalytics = null
+ )
+ {
+ if (isset($click_tracking)) {
+ $this->setClickTracking($click_tracking);
+ }
+ if (isset($open_tracking)) {
+ $this->setOpenTracking($open_tracking);
+ }
+ if (isset($subscription_tracking)) {
+ $this->setSubscriptionTracking($subscription_tracking);
+ }
+ if (isset($ganalytics)) {
+ $this->setGanalytics($ganalytics);
+ }
+ }
+
+ /**
+ * Set the click tracking settings on a TrackingSettings object
+ *
+ * @param ClickTracking|bool $enable The ClickTracking object or an
+ * indication if the setting is enabled
+ * @param bool|null $enable_text Indicates if this setting should be
+ * included in the text/plain portion of
+ * your email
+ */
+ public function setClickTracking($enable, $enable_text = null)
+ {
+ if ($enable instanceof ClickTracking) {
+ $click_tracking = $enable;
+ $this->click_tracking = $click_tracking;
+ return;
+ }
+ $this->click_tracking = new ClickTracking($enable, $enable_text);
+ }
+
+ /**
+ * Retrieve the click tracking settings from a TrackingSettings object
+ *
+ * @return ClickTracking
+ */
+ public function getClickTracking()
+ {
+ return $this->click_tracking;
+ }
+
+ /**
+ * Set the open tracking settings on a TrackingSettings object
+ *
+ * @param OpenTracking|bool $enable The ClickTracking object or an
+ * indication if the setting is
+ * enabled
+ * @param string|null $substitution_tag Allows you to specify a
+ * substitution tag that you can
+ * insert in the body of your email
+ * at a location that you desire.
+ * This tag will be replaced by
+ * the open tracking pixelail
+ *
+ * @return null
+ */
+ public function setOpenTracking($enable, $substitution_tag = null)
+ {
+ if ($enable instanceof OpenTracking) {
+ $open_tracking = $enable;
+ $this->open_tracking = $open_tracking;
+ return;
+ }
+ $this->open_tracking = new OpenTracking($enable, $substitution_tag);
+ return;
+ }
+
+ /**
+ * Retrieve the open tracking settings on a TrackingSettings object
+ *
+ * @return OpenTracking
+ */
+ public function getOpenTracking()
+ {
+ return $this->open_tracking;
+ }
+
+ /**
+ * Set the subscription tracking settings on a TrackingSettings object
+ *
+ * @param SubscriptionTracking|bool $enable The SubscriptionTracking
+ * object or an indication
+ * if the setting is enabled
+ * @param string|null $text Text to be appended to the
+ * email, with the
+ * subscription tracking
+ * link. You may control
+ * where the link is by using
+ * the tag <% %>
+ * @param string|null $html HTML to be appended to the
+ * email, with the
+ * subscription tracking
+ * link. You may control
+ * where the link is by using
+ * the tag <% %>
+ * @param string|null $substitution_tag A tag that will be
+ * replaced with the
+ * unsubscribe URL. For
+ * example:
+ * [unsubscribe_url]. If this
+ * parameter is used, it will
+ * override both the text
+ * and html parameters. The
+ * URL of the link will be
+ * placed at the substitution
+ * tag’s location, with no
+ * additional formatting
+ */
+ public function setSubscriptionTracking(
+ $enable,
+ $text = null,
+ $html = null,
+ $substitution_tag = null
+ ) {
+ if ($enable instanceof SubscriptionTracking) {
+ $subscription_tracking = $enable;
+ $this->subscription_tracking = $subscription_tracking;
+ return;
+ }
+ $this->subscription_tracking
+ = new SubscriptionTracking($enable, $text, $html, $substitution_tag);
+ }
+
+ /**
+ * Retrieve the subscription tracking settings from a TrackingSettings object
+ *
+ * @return SubscriptionTracking
+ */
+ public function getSubscriptionTracking()
+ {
+ return $this->subscription_tracking;
+ }
+
+ /**
+ * Set the Google analytics settings on a TrackingSettings object
+ *
+ * @param Ganalytics|bool $enable The Ganalytics object or an indication
+ * if the setting is enabled
+ * @param string|null $utm_source Name of the referrer source. (e.g.
+ * Google, SomeDomain.com, or
+ * Marketing Email)
+ * @param string|null $utm_medium Name of the marketing medium. (e.g.
+ * Email)
+ * @param string|null $utm_term Used to identify any paid keywords
+ * @param string|null $utm_content Used to differentiate your campaign from
+ * advertisements
+ * @param string|null $utm_campaign The name of the campaign
+ */
+ public function setGanalytics(
+ $enable,
+ $utm_source = null,
+ $utm_medium = null,
+ $utm_term = null,
+ $utm_content = null,
+ $utm_campaign = null
+ ) {
+ if ($enable instanceof Ganalytics) {
+ $ganalytics = $enable;
+ $this->ganalytics = $ganalytics;
+ return;
+ }
+ $this->ganalytics = new Ganalytics(
+ $enable,
+ $utm_source,
+ $utm_medium,
+ $utm_term,
+ $utm_content,
+ $utm_campaign
+ );
+ }
+
+ /**
+ * Retrieve the Google analytics settings from a TrackingSettings object
+ *
+ * @return Ganalytics
+ */
+ public function getGanalytics()
+ {
+ return $this->ganalytics;
+ }
+
+ /**
+ * Return an array representing a TrackingSettings object for the Twilio SendGrid API
+ *
+ * @return null|array
+ */
+ public function jsonSerialize()
+ {
+ return array_filter(
+ [
+ 'click_tracking' => $this->getClickTracking(),
+ 'open_tracking' => $this->getOpenTracking(),
+ 'subscription_tracking' => $this->getSubscriptionTracking(),
+ 'ganalytics' => $this->getGanalytics()
+ ],
+ function ($value) {
+ return $value !== null;
+ }
+ ) ?: null;
+ }
+}