removing uneeded code and moving the url generation to proper class

This commit is contained in:
Amine Ben hammou
2017-04-18 20:45:37 +02:00
parent a7142ed21b
commit 8157780b68
3 changed files with 36 additions and 34 deletions

View File

@ -2,6 +2,7 @@
namespace MailPoet\Cron\Workers\SendingQueue;
use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
use MailPoet\Mailer\MailerLog;
@ -10,7 +11,6 @@ use MailPoet\Models\SendingQueue as SendingQueueModel;
use MailPoet\Models\Setting;
use MailPoet\Models\StatisticsNewsletters as StatisticsNewslettersModel;
use MailPoet\Models\Subscriber as SubscriberModel;
use MailPoet\Newsletter\Links\Links;
use MailPoet\Router\Endpoints\Track;
use MailPoet\Router\Router;
use MailPoet\Subscription\Url;
@ -123,7 +123,7 @@ class SendingQueue {
$prepared_newsletters[0],
$prepared_subscribers[0],
$statistics,
$this->getExtraParams($queue, $prepared_subscribers_ids)
array('unsubscribe_url' => Links::getUnsubscribeUrl($queue, $prepared_subscribers_ids[0]))
);
$prepared_newsletters = array();
$prepared_subscribers = array();
@ -180,33 +180,6 @@ class SendingQueue {
MailerLog::enforceExecutionRequirements();
}
protected function getExtraParams($queue, $prepared_subscribers_ids) {
$subscriber_id = $prepared_subscribers_ids[0];
$subscriber = SubscriberModel::where('id', $subscriber_id)->findOne();
if((boolean)Setting::getValue('tracking.enabled')) {
$link_hash = NewsletterLink::where('queue_id', $queue->id)
->where('url', '[link:subscription_unsubscribe_url]')
->findOne()
->hash;
$data = Links::createUrlDataObject(
$subscriber_id,
$subscriber->email,
$queue->id,
$link_hash,
false
);
$url = Router::buildRequest(
Track::ENDPOINT,
Track::ACTION_CLICK,
$data
);
} else {
$url = Url::getUnsubscribeUrl($subscriber);
}
return array('unsubscribe_url' => $url);
}
static function getRunningQueues() {
return SendingQueueModel::orderByAsc('priority')
->whereNull('deleted_at')

View File

@ -1,8 +1,14 @@
<?php
namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
use MailPoet\Newsletter\Links\Links as NewsletterLinks;
use MailPoet\Util\Helpers;
use MailPoet\Router\Router;
use MailPoet\Models\Setting;
use MailPoet\Subscription\Url;
use MailPoet\Models\Subscriber;
use MailPoet\Router\Endpoints\Track;
use MailPoet\Newsletter\Links\Links as NewsletterLinks;
use MailPoet\Models\NewsletterLink as NewsletterLinkModel;
if(!defined('ABSPATH')) exit;
@ -30,4 +36,30 @@ class Links {
static function saveLinks($links, $newsletter, $queue) {
return NewsletterLinks::save($links, $newsletter->id, $queue->id);
}
}
static function getUnsubscribeUrl($queue, $subscriber_id) {
$subscriber = Subscriber::where('id', $subscriber_id)->findOne();
if((boolean)Setting::getValue('tracking.enabled')) {
$link_hash = NewsletterLinkModel::where('queue_id', $queue->id)
->where('url', '[link:subscription_unsubscribe_url]')
->findOne()
->hash;
$data = NewsletterLinks::createUrlDataObject(
$subscriber->id,
$subscriber->email,
$queue->id,
$link_hash,
false
);
$url = Router::buildRequest(
Track::ENDPOINT,
Track::ACTION_CLICK,
$data
);
} else {
$url = Url::getUnsubscribeUrl($subscriber);
}
return $url;
}
}

View File

@ -33,9 +33,6 @@ class Url {
if(is_object($subscriber)) {
$subscriber = $subscriber->asArray();
}
if(is_string($subscriber)) {
$subscriber = array('email' => $subscriber);
}
$data = array(
'token' => Subscriber::generateToken($subscriber['email']),