Make templates payload smaller

[MAILPOET-1479]
This commit is contained in:
Pavel Dohnal
2018-08-30 11:40:46 +02:00
parent d4e9224bc1
commit c7f71663d9
4 changed files with 16 additions and 10 deletions

View File

@ -1,5 +1,4 @@
import React from 'react';
import _ from 'underscore';
import MailPoet from 'mailpoet';
import { confirmAlert } from 'react-confirm-alert';
import PropTypes from 'prop-types';
@ -60,11 +59,6 @@ class TemplateBox extends React.Component {
onSelect() {
const { newsletterId, name, beforeSelect, afterSelect } = this.props;
let body = this.props.body;
if (!_.isUndefined(body)) {
body = JSON.stringify(body);
}
beforeSelect();
@ -79,7 +73,7 @@ class TemplateBox extends React.Component {
action: 'save',
data: {
id: newsletterId,
body,
template_id: this.props.id,
},
}).done((response) => {
afterSelect(true, response.data.id);
@ -151,7 +145,6 @@ TemplateBox.propTypes = {
afterDelete: PropTypes.func.isRequired,
beforeSelect: PropTypes.func.isRequired,
afterSelect: PropTypes.func.isRequired,
body: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
};
export default TemplateBox;

View File

@ -29,7 +29,11 @@ class NewsletterTemplates extends APIEndpoint {
}
function getAll() {
$collection = NewsletterTemplate::orderByDesc('created_at')->orderByAsc('name')->findMany();
$collection = NewsletterTemplate
::selectExpr('id, categories, thumbnail, name, description, readonly')
->orderByDesc('created_at')
->orderByAsc('name')
->findMany();
$templates = array_map(function($item) {
return $item->asArray();
}, $collection);

View File

@ -65,6 +65,15 @@ class Newsletters extends APIEndpoint {
unset($data['options']);
}
if(!empty($data['template_id'])) {
$template = NewsletterTemplate::whereEqual('id', $data['template_id'])->findOne();
if(!empty($template)) {
$template = $template->asArray();
$data['body'] = $template['body'];
}
unset($data['template_id']);
}
$newsletter = Newsletter::createOrUpdate($data);
$errors = $newsletter->getErrors();

View File

@ -49,7 +49,7 @@ class NewsletterTemplatesTest extends \MailPoetTest {
$router = new NewsletterTemplates();
$response = $router->getAll();
expect($response->status)->equals(APIResponse::STATUS_OK);
expect($response->data)->equals($templates);
expect($response->data)->count(count($templates));
}
function testItCanSaveANewTemplate() {