Made changes as per Marco's comments
This commit is contained in:
@ -33,13 +33,13 @@ class Initializer {
|
|||||||
$subscribers = Env::$db_prefix . 'subscribers';
|
$subscribers = Env::$db_prefix . 'subscribers';
|
||||||
$settings = Env::$db_prefix . 'settings';
|
$settings = Env::$db_prefix . 'settings';
|
||||||
$newsletters = Env::$db_prefix . 'newsletters';
|
$newsletters = Env::$db_prefix . 'newsletters';
|
||||||
$lists = Env::$db_prefix . 'lists';
|
$segments = Env::$db_prefix . 'segments';
|
||||||
$subscriber_segment = Env::$db_prefix . 'subscriber_segment';
|
$subscriber_segment = Env::$db_prefix . 'subscriber_segment';
|
||||||
|
|
||||||
define('MP_SUBSCRIBERS_TABLE', $subscribers);
|
define('MP_SUBSCRIBERS_TABLE', $subscribers);
|
||||||
define('MP_SETTINGS_TABLE', $settings);
|
define('MP_SETTINGS_TABLE', $settings);
|
||||||
define('MP_NEWSLETTERS_TABLE', $newsletters);
|
define('MP_NEWSLETTERS_TABLE', $newsletters);
|
||||||
define('MP_LISTS_TABLE', $lists);
|
define('MP_SEGMENTS_TABLE', $segments);
|
||||||
define('MP_SUBSCRIBER_SEGMENT_TABLE', $subscriber_segment);
|
define('MP_SUBSCRIBER_SEGMENT_TABLE', $subscriber_segment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ class Migrator {
|
|||||||
'subscribers',
|
'subscribers',
|
||||||
'settings',
|
'settings',
|
||||||
'newsletters',
|
'newsletters',
|
||||||
'lists',
|
'segments',
|
||||||
'subscriber_segment'
|
'subscriber_segment'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -79,7 +79,7 @@ class Migrator {
|
|||||||
return $this->sqlify(__FUNCTION__, $attributes);
|
return $this->sqlify(__FUNCTION__, $attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
function lists() {
|
function segments() {
|
||||||
$attributes = array(
|
$attributes = array(
|
||||||
'id mediumint(9) NOT NULL AUTO_INCREMENT,',
|
'id mediumint(9) NOT NULL AUTO_INCREMENT,',
|
||||||
'name varchar(90) NOT NULL,',
|
'name varchar(90) NOT NULL,',
|
||||||
@ -95,7 +95,7 @@ class Migrator {
|
|||||||
$attributes = array(
|
$attributes = array(
|
||||||
'id mediumint(9) NOT NULL AUTO_INCREMENT,',
|
'id mediumint(9) NOT NULL AUTO_INCREMENT,',
|
||||||
'subscriber_id mediumint(9) NOT NULL,',
|
'subscriber_id mediumint(9) NOT NULL,',
|
||||||
'list_id mediumint(9) NOT NULL,',
|
'segment_id mediumint(9) NOT NULL,',
|
||||||
'created_at TIMESTAMP NOT NULL DEFAULT 0,',
|
'created_at TIMESTAMP NOT NULL DEFAULT 0,',
|
||||||
'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
||||||
'PRIMARY KEY (id)'
|
'PRIMARY KEY (id)'
|
||||||
|
@ -4,7 +4,7 @@ namespace MailPoet\Models;
|
|||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
class Segment extends Model {
|
class Segment extends Model {
|
||||||
public static $_table = MP_LISTS_TABLE;
|
public static $_table = MP_SEGMENTS_TABLE;
|
||||||
|
|
||||||
function __construct() {
|
function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@ -30,6 +30,6 @@ class Segment extends Model {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function subscribers() {
|
public function subscribers() {
|
||||||
return self::has_many_through(__NAMESPACE__ . '\Subscriber', __NAMESPACE__ . '\SubscriberSegment', 'list_id', 'subscriber_id');
|
return $this->has_many_through(__NAMESPACE__ . '\Subscriber', __NAMESPACE__ . '\SubscriberSegment', 'segment_id', 'subscriber_id');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ class Subscriber extends Model {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function lists() {
|
public function segments() {
|
||||||
return self::has_many_through(__NAMESPACE__ . '\Segment', __NAMESPACE__ . '\SubscriberSegment', 'subscriber_id', 'list_id');
|
return $this->has_many_through(__NAMESPACE__ . '\Segment', __NAMESPACE__ . '\SubscriberSegment', 'subscriber_id', 'segment_id');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,9 +11,9 @@ class SegmentCest {
|
|||||||
'name' => 'some name',
|
'name' => 'some name',
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->list = Segment::create();
|
$this->segment = Segment::create();
|
||||||
$this->list->hydrate($this->data);
|
$this->segment->hydrate($this->data);
|
||||||
$this->saved = $this->list->save();
|
$this->saved = $this->segment->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
function itCanBeCreated() {
|
function itCanBeCreated() {
|
||||||
@ -29,35 +29,35 @@ class SegmentCest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function itHasACreatedAtOnCreation() {
|
function itHasACreatedAtOnCreation() {
|
||||||
$list = Segment::where('name', $this->data['name'])
|
$segment = Segment::where('name', $this->data['name'])
|
||||||
->findOne();
|
->findOne();
|
||||||
$time_difference = strtotime($list->created_at) >= $this->before_time;
|
$time_difference = strtotime($segment->created_at) >= $this->before_time;
|
||||||
expect($time_difference)->equals(true);
|
expect($time_difference)->equals(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function itHasAnUpdatedAtOnCreation() {
|
function itHasAnUpdatedAtOnCreation() {
|
||||||
$list = Segment::where('name', $this->data['name'])
|
$segment = Segment::where('name', $this->data['name'])
|
||||||
->findOne();
|
->findOne();
|
||||||
$time_difference = strtotime($list->updated_at) >= $this->before_time;
|
$time_difference = strtotime($segment->updated_at) >= $this->before_time;
|
||||||
expect($time_difference)->equals(true);
|
expect($time_difference)->equals(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function itKeepsTheCreatedAtOnUpdate() {
|
function itKeepsTheCreatedAtOnUpdate() {
|
||||||
$list = Segment::where('name', $this->data['name'])
|
$segment = Segment::where('name', $this->data['name'])
|
||||||
->findOne();
|
->findOne();
|
||||||
$old_created_at = $list->created_at;
|
$old_created_at = $segment->created_at;
|
||||||
$list->name = 'new name';
|
$segment->name = 'new name';
|
||||||
$list->save();
|
$segment->save();
|
||||||
expect($old_created_at)->equals($list->created_at);
|
expect($old_created_at)->equals($segment->created_at);
|
||||||
}
|
}
|
||||||
|
|
||||||
function itUpdatesTheUpdatedAtOnUpdate() {
|
function itUpdatesTheUpdatedAtOnUpdate() {
|
||||||
$list = Segment::where('name', $this->data['name'])
|
$segment = Segment::where('name', $this->data['name'])
|
||||||
->findOne();
|
->findOne();
|
||||||
$update_time = time();
|
$update_time = time();
|
||||||
$list->name = 'new name';
|
$segment->name = 'new name';
|
||||||
$list->save();
|
$segment->save();
|
||||||
$time_difference = strtotime($list->updated_at) >= $update_time;
|
$time_difference = strtotime($segment->updated_at) >= $update_time;
|
||||||
expect($time_difference)->equals(true);
|
expect($time_difference)->equals(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,12 +97,12 @@ class SegmentCest {
|
|||||||
$subscriber->save();
|
$subscriber->save();
|
||||||
$association = SubscriberSegment::create();
|
$association = SubscriberSegment::create();
|
||||||
$association->subscriber_id = $subscriber->id;
|
$association->subscriber_id = $subscriber->id;
|
||||||
$association->list_id = $this->list->id;
|
$association->segment_id = $this->segment->id;
|
||||||
$association->save();
|
$association->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
$list = Segment::find_one($this->list->id);
|
$segment = Segment::find_one($this->segment->id);
|
||||||
$subscribers = $list->subscribers()
|
$subscribers = $segment->subscribers()
|
||||||
->find_array();
|
->find_array();
|
||||||
expect(count($subscribers))->equals(2);
|
expect(count($subscribers))->equals(2);
|
||||||
}
|
}
|
||||||
|
@ -53,23 +53,23 @@ class SubscriberCest {
|
|||||||
expect($saved)->equals(false);
|
expect($saved)->equals(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function itCanHaveAList() {
|
function itCanHaveASegment() {
|
||||||
$listData = array(
|
$segmentData = array(
|
||||||
'name' => 'some name'
|
'name' => 'some name'
|
||||||
);
|
);
|
||||||
|
|
||||||
$list = Segment::create();
|
$segment = Segment::create();
|
||||||
$list->hydrate($listData);
|
$segment->hydrate($segmentData);
|
||||||
$list->save();
|
$segment->save();
|
||||||
$association = SubscriberSegment::create();
|
$association = SubscriberSegment::create();
|
||||||
$association->subscriber_id = $this->subscriber->id;
|
$association->subscriber_id = $this->subscriber->id;
|
||||||
$association->list_id = $list->id;
|
$association->segment_id = $segment->id;
|
||||||
$association->save();
|
$association->save();
|
||||||
|
|
||||||
$subscriber = Subscriber::find_one($this->subscriber->id);
|
$subscriber = Subscriber::find_one($this->subscriber->id);
|
||||||
$subscriberList = $subscriber->lists()
|
$subscriberSegment = $subscriber->segments()
|
||||||
->find_one();
|
->find_one();
|
||||||
expect($subscriberList->id)->equals($list->id);
|
expect($subscriberSegment->id)->equals($segment->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _after() {
|
function _after() {
|
||||||
|
Reference in New Issue
Block a user