moved logic from Subscribers router to model
This commit is contained in:
@ -70,4 +70,25 @@ class Subscriber extends Model {
|
|||||||
'segment_id'
|
'segment_id'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function createOrUpdate($data = array()) {
|
||||||
|
$subscriber = false;
|
||||||
|
|
||||||
|
if(isset($data['id']) && (int)$data['id'] > 0) {
|
||||||
|
$subscriber = self::findOne((int)$data['id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($subscriber === false) {
|
||||||
|
$subscriber = self::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
$subscriber->hydrate($data);
|
||||||
|
$saved = $subscriber->save();
|
||||||
|
|
||||||
|
if($saved === false) {
|
||||||
|
return $subscriber->getValidationErrors();
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,22 +34,10 @@ class Subscribers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function save($data = array()) {
|
function save($data = array()) {
|
||||||
$id = (isset($data['id']) ? (int)$data['id'] : 0);
|
$result = Subscriber::createOrUpdate($data);
|
||||||
|
|
||||||
if($id > 0) {
|
if($result !== true) {
|
||||||
// update
|
wp_send_json($result);
|
||||||
$model = Subscriber::findOne($id);
|
|
||||||
$model->hydrate($data);
|
|
||||||
$saved = $model->save();
|
|
||||||
} else {
|
|
||||||
// new
|
|
||||||
$model = Subscriber::create();
|
|
||||||
$model->hydrate($data);
|
|
||||||
$saved = $model->save();
|
|
||||||
}
|
|
||||||
|
|
||||||
if($saved === false) {
|
|
||||||
wp_send_json($model->getValidationErrors());
|
|
||||||
} else {
|
} else {
|
||||||
wp_send_json(true);
|
wp_send_json(true);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user