AccessControl::PERMISSION_MANAGE_EMAILS ); function get($data = array()) { $id = (isset($data['id']) ? (int)$data['id'] : false); $template = NewsletterTemplate::findOne($id); if($template === false) { return $this->errorResponse(array( APIError::NOT_FOUND => __('This template does not exist.', 'mailpoet') )); } else { return $this->successResponse( $template->asArray() ); } } function getAll() { $collection = NewsletterTemplate ::selectExpr('id, categories, thumbnail, name, description, readonly') ->orderByAsc('readonly') ->orderByDesc('created_at') ->orderByDesc('id') ->findMany(); $templates = array_map(function($item) { return $item->asArray(); }, $collection); return $this->successResponse($templates); } function save($data = array()) { if(!empty($data['newsletter_id'])) { $template = NewsletterTemplate::whereEqual('newsletter_id', $data['newsletter_id'])->findOne(); if(!empty($template)) { $data['id'] = $template->id; } } $template = NewsletterTemplate::createOrUpdate($data); $errors = $template->getErrors(); NewsletterTemplate::cleanRecentlySent($data); if(!empty($errors)) { return $this->errorResponse($errors); } else { return $this->successResponse( NewsletterTemplate::findOne($template->id)->asArray() ); } } function delete($data = array()) { $id = (isset($data['id']) ? (int)$data['id'] : false); $template = NewsletterTemplate::findOne($id); if($template === false) { return $this->errorResponse(array( APIError::NOT_FOUND => __('This template does not exist.', 'mailpoet') )); } else { $template->delete(); return $this->successResponse(null, array('count' => 1)); } } }