From 41cd01c2b916cff8de6fe7ef212d8acba262e262 Mon Sep 17 00:00:00 2001 From: Tomas Bures Date: Sat, 23 Feb 2019 14:27:28 +0000 Subject: [PATCH] Exported CSV now contains status column (fix for #547) --- mvis/ivis-core | 2 +- server/routes/subscriptions.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mvis/ivis-core b/mvis/ivis-core index d260de2e..f0167635 160000 --- a/mvis/ivis-core +++ b/mvis/ivis-core @@ -1 +1 @@ -Subproject commit d260de2e153f9c1d6bc7af69c1c3d733073bab74 +Subproject commit f0167635c8c238e828b311fa9d0b058b5a00020d diff --git a/server/routes/subscriptions.js b/server/routes/subscriptions.js index 304036b9..447348fe 100644 --- a/server/routes/subscriptions.js +++ b/server/routes/subscriptions.js @@ -10,8 +10,16 @@ const stringify = require('csv-stringify') const fields = require('../models/fields'); const lists = require('../models/lists'); const moment = require('moment'); +const {SubscriptionStatus} = require('../../shared/lists'); router.getAsync('/export/:listId/:segmentId', passport.loggedIn, async (req, res) => { + const statusStrings = { + [SubscriptionStatus.SUBSCRIBED]: 'subscribed', + [SubscriptionStatus.UNSUBSCRIBED]: 'unsubscribed', + [SubscriptionStatus.BOUNCED]: 'bounced', + [SubscriptionStatus.COMPLAINED]: 'complained' + }; + const listId = castToInteger(req.params.listId); const segmentId = castToInteger(req.params.segmentId); @@ -19,6 +27,7 @@ router.getAsync('/export/:listId/:segmentId', passport.loggedIn, async (req, res const columns = [ {key: 'cid', header: 'cid'}, + {key: 'status', header: 'status'}, {key: 'hash_email', header: 'HASH_EMAIL'}, {key: 'email', header: 'EMAIL'}, ]; @@ -50,6 +59,8 @@ router.getAsync('/export/:listId/:segmentId', passport.loggedIn, async (req, res stringifier.pipe(res); for await (const subscription of subscriptions.listIterator(req.context, listId, segmentId, false)) { + subscription.status = statusStrings[subscription.status]; + stringifier.write(subscription); }