moved logic from Subscribers router to model

This commit is contained in:
Jonathan Labreuille
2015-09-10 11:50:26 +02:00
parent 97db902529
commit 575e748d84
2 changed files with 24 additions and 15 deletions

View File

@ -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;
}
}
} }

View File

@ -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);
} }