Skip to content

Commit b927895

Browse files
authored
šŸ› Fixed members import unsubscribing members when subscribe_to_emails is empty (#19658)
fixes ENG-611 - Previously, if an existing member with newsletter subscriptions was imported, and `subscribe_to_emails` was blank/empty, the member would be unsubscribed from all newsletters, which is not the expected behavior. - This PR changes the behavior so if `subscribe_to_emails` is blank, it will not unsubscribe existing members.
1 parent ab134eb commit b927895

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

ā€Žpackages/members-csv/lib/unparse.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,53 +14,53 @@ const DEFAULT_COLUMNS = [
1414
'tiers'
1515
];
1616

17-
const unparse = (members, columns = DEFAULT_COLUMNS.slice()) => {
17+
const unparse = (rows, columns = DEFAULT_COLUMNS.slice()) => {
1818
columns = columns.map((column) => {
1919
if (column === 'subscribed') {
2020
return 'subscribed_to_emails';
2121
}
2222
return column;
2323
});
24-
const mappedMembers = members.map((member) => {
25-
if (member.error && !columns.includes('error')) {
24+
const mappedRows = rows.map((row) => {
25+
if (row.error && !columns.includes('error')) {
2626
columns.push('error');
2727
}
2828

2929
let labels = '';
30-
if (typeof member.labels === 'string') {
31-
labels = member.labels;
32-
} else if (Array.isArray(member.labels)) {
33-
labels = member.labels.map((l) => {
30+
if (typeof row.labels === 'string') {
31+
labels = row.labels;
32+
} else if (Array.isArray(row.labels)) {
33+
labels = row.labels.map((l) => {
3434
return typeof l === 'string' ? l : l.name;
3535
}).join(',');
3636
}
3737

3838
let tiers = '';
3939

40-
if (Array.isArray(member.tiers)) {
41-
tiers = member.tiers.map((tier) => {
40+
if (Array.isArray(row.tiers)) {
41+
tiers = row.tiers.map((tier) => {
4242
return tier.name;
4343
}).join(',');
4444
}
4545

4646
return {
47-
id: member.id,
48-
email: member.email,
49-
name: member.name,
50-
note: member.note,
51-
subscribed_to_emails: member.subscribed || member.subscribed_to_emails ? true : false,
52-
complimentary_plan: member.comped || member.complimentary_plan,
53-
stripe_customer_id: _.get(member, 'subscriptions[0].customer.id') || member.stripe_customer_id,
54-
created_at: member.created_at,
55-
deleted_at: member.deleted_at,
47+
id: row.id,
48+
email: row.email,
49+
name: row.name,
50+
note: row.note,
51+
subscribed_to_emails: 'subscribed' in row ? row.subscribed : row.subscribed_to_emails,
52+
complimentary_plan: row.comped || row.complimentary_plan,
53+
stripe_customer_id: _.get(row, 'subscriptions[0].customer.id') || row.stripe_customer_id,
54+
created_at: row.created_at,
55+
deleted_at: row.deleted_at,
5656
labels: labels,
5757
tiers: tiers,
58-
import_tier: member.import_tier || null,
59-
error: member.error || null
58+
import_tier: row.import_tier || null,
59+
error: row.error || null
6060
};
6161
});
6262

63-
return papaparse.unparse(mappedMembers, {
63+
return papaparse.unparse(mappedRows, {
6464
columns
6565
});
6666
};

ā€Žpackages/members-csv/test/unparse.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ describe('unparse', function () {
1313

1414
assert.ok(result);
1515

16-
const expected = `id,email,name,note,subscribed_to_emails,complimentary_plan,stripe_customer_id,created_at,deleted_at,labels,tiers\r\n,[email protected],Sam Memberino,Early supporter,false,,,,,,`;
16+
const expected = `id,email,name,note,subscribed_to_emails,complimentary_plan,stripe_customer_id,created_at,deleted_at,labels,tiers\r\n,[email protected],Sam Memberino,Early supporter,,,,,,,`;
1717
assert.equal(result, expected);
1818
});
1919

0 commit comments

Comments
Ā (0)