Implement NewsletterTempates::save() API using Doctrine

[MAILPOET-2647]
This commit is contained in:
Jan Jakeš
2020-03-05 17:22:14 +01:00
committed by Veljko V
parent 4d110bbb68
commit 32f5777945
3 changed files with 42 additions and 28 deletions

View File

@ -56,26 +56,13 @@ class NewsletterTemplates extends APIEndpoint {
public function save($data = []) {
ignore_user_abort(true);
if (!empty($data['newsletter_id'])) {
$template = NewsletterTemplate::whereEqual('newsletter_id', $data['newsletter_id'])->findOne();
if ($template instanceof NewsletterTemplate) {
$data['id'] = $template->id;
}
}
$template = NewsletterTemplate::createOrUpdate($data);
$errors = $template->getErrors();
NewsletterTemplate::cleanRecentlySent($data);
if (!empty($errors)) {
return $this->errorResponse($errors);
} else {
$template = NewsletterTemplate::findOne($template->id);
if(!$template instanceof NewsletterTemplate) return $this->errorResponse();
return $this->successResponse(
$template->asArray()
);
try {
$template = $this->newsletterTemplatesRepository->createOrUpdate($data);
NewsletterTemplate::cleanRecentlySent($data);
$data = $this->newsletterTemplatesResponseBuilder->build($template);
return $this->successResponse($data);
} catch (\Throwable $e) {
return $this->errorResponse();
}
}