Files
piratepoet/assets/js/src/newsletter_editor/components/communication.js
2016-09-05 11:55:01 +02:00

105 lines
2.2 KiB
JavaScript

define([
'newsletter_editor/App',
'underscore',
'mailpoet',
'ajax'
], function(App, _, MailPoet) {
var Module = {};
Module._query = function(args) {
return MailPoet.Ajax.post({
endpoint: 'automatedLatestContent',
action: args.action,
data: args.options || {}
});
};
Module._cachedQuery = _.memoize(Module._query, JSON.stringify);
Module.getNewsletter = function(options) {
return Module._query({
action: 'get',
options: options
});
};
Module.getPostTypes = function() {
return Module._cachedQuery({
action: 'getPostTypes',
options: {}
}).then(function(response) {
return _.values(response.data);
});
};
Module.getTaxonomies = function(postType) {
return Module._cachedQuery({
action: 'getTaxonomies',
options: {
postType: postType
}
}).then(function(response) {
return response.data;
});
};
Module.getTerms = function(options) {
return Module._cachedQuery({
action: 'getTerms',
options: options
}).then(function(response) {
return response.data;
});
};
Module.getPosts = function(options) {
return Module._cachedQuery({
action: 'getPosts',
options: options
}).then(function(response) {
return response.data;
});
};
Module.getTransformedPosts = function(options) {
return Module._cachedQuery({
action: 'getTransformedPosts',
options: options
}).then(function(response) {
return response.data;
});
};
Module.getBulkTransformedPosts = function(options) {
return Module._query({
action: 'getBulkTransformedPosts',
options: options
}).then(function(response) {
return response.data;
});
};
Module.saveNewsletter = function(options) {
return MailPoet.Ajax.post({
endpoint: 'newsletters',
action: 'save',
data: options || {}
});
};
Module.previewNewsletter = function(options) {
return MailPoet.Ajax.post({
endpoint: 'newsletters',
action: 'sendPreview',
data: options || {}
});
};
App.on('start', function(options) {
// Prefetch post types
Module.getPostTypes();
});
return Module;
});