feat(mailchimp): add create campaign action

This commit is contained in:
Rıdvan Akca
2024-02-01 18:30:22 +03:00
committed by Ali BARIN
parent 273f04128c
commit 4cbd342e17
7 changed files with 274 additions and 1 deletions

View File

@@ -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];

View File

@@ -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;
},
};

View File

@@ -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;
},
};