From c5c20d5efb8e10dc48782b1a3701d576e9451ead Mon Sep 17 00:00:00 2001 From: Nazar Gargol Date: Fri, 19 Jun 2020 17:23:05 +1200 Subject: [PATCH] Extracted members csv serialization logic into separate module no issue - This is prep work for extraction into members repository. --- ghost/members-csv/unparse | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 ghost/members-csv/unparse diff --git a/ghost/members-csv/unparse b/ghost/members-csv/unparse new file mode 100644 index 0000000000..72a679e103 --- /dev/null +++ b/ghost/members-csv/unparse @@ -0,0 +1,33 @@ +const _ = require('lodash'); +const papaparse = require('papaparse'); + +const unparse = (members) => { + const mappedMembers = members.map((member) => { + let stripeCustomerId; + + if (member.stripe) { + stripeCustomerId = _.get(member, 'stripe.subscriptions[0].customer.id'); + } + let labels = []; + if (member.labels) { + labels = `${member.labels.map(l => l.name).join(',')}`; + } + + return { + id: member.id, + email: member.email, + name: member.name, + note: member.note, + subscribed_to_emails: member.subscribed, + complimentary_plan: member.comped, + stripe_customer_id: stripeCustomerId, + created_at: member.created_at, + deleted_at: member.deleted_at, + labels: labels + }; + }); + + return papaparse.unparse(mappedMembers); +}; + +module.exports.unparse = unparse;