feat(mailchimp): add create campaign action
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import listAudiences from './list-audiences/index.js';
|
||||
import listCampaigns from './list-campaigns/index.js';
|
||||
import listTags from './list-segments-or-tags/index.js';
|
||||
import listTemplates from './list-templates/index.js';
|
||||
|
||||
export default [listAudiences, listCampaigns];
|
||||
export default [listAudiences, listCampaigns, listTags, listTemplates];
|
||||
|
@@ -0,0 +1,44 @@
|
||||
export default {
|
||||
name: 'List segments or tags',
|
||||
key: 'listSegmentsOrTags',
|
||||
|
||||
async run($) {
|
||||
const segmentsOrTags = {
|
||||
data: [],
|
||||
};
|
||||
const audienceId = $.step.parameters.audienceId;
|
||||
|
||||
if (!audienceId) {
|
||||
return segmentsOrTags;
|
||||
}
|
||||
|
||||
const {
|
||||
data: { tags: allTags },
|
||||
} = await $.http.get(`/3.0/lists/${audienceId}/tag-search`);
|
||||
|
||||
const {
|
||||
data: { segments },
|
||||
} = await $.http.get(`/3.0/lists/${audienceId}/segments`);
|
||||
|
||||
const mergedArray = [...allTags, ...segments].reduce(
|
||||
(accumulator, current) => {
|
||||
if (!accumulator.some((item) => item.id === current.id)) {
|
||||
accumulator.push(current);
|
||||
}
|
||||
return accumulator;
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
if (mergedArray?.length) {
|
||||
for (const tagOrSegment of mergedArray) {
|
||||
segmentsOrTags.data.push({
|
||||
value: tagOrSegment.id,
|
||||
name: tagOrSegment.name,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return segmentsOrTags;
|
||||
},
|
||||
};
|
@@ -0,0 +1,30 @@
|
||||
export default {
|
||||
name: 'List templates',
|
||||
key: 'listTemplates',
|
||||
|
||||
async run($) {
|
||||
const templates = {
|
||||
data: [],
|
||||
};
|
||||
|
||||
const params = {
|
||||
sort_field: 'date_created',
|
||||
sort_dir: 'DESC',
|
||||
count: 1000,
|
||||
offset: 0,
|
||||
};
|
||||
|
||||
const { data } = await $.http.get('/3.0/templates', { params });
|
||||
|
||||
if (data?.templates) {
|
||||
for (const template of data.templates) {
|
||||
templates.data.push({
|
||||
value: template.id,
|
||||
name: template.name,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return templates;
|
||||
},
|
||||
};
|
Reference in New Issue
Block a user