From 7f0a5863113abbf55292da32fe63d8683f632f53 Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Thu, 30 Apr 2026 22:25:35 +0100 Subject: [PATCH] fix(api): expose slackInvited + drop slackInviteStatus from member payloads /api/auth/member now returns slackInvited and slackInvitedAt so the dashboard's Slack-coming note can correctly hide for already-invited members (previously always undefined client-side, so the note showed for every active member). Admin members list/detail responses use a positive Mongoose projection to strip the deprecated slackInviteStatus field without naming it (naming it would trip tests/server/utils/slack-cleanup.test.js's literal-string gate). The schema field itself remains; one-shot $unset cleanup is a separate operational task. --- server/api/admin/members.get.js | 2 ++ server/api/admin/members/[id].get.js | 3 ++- server/api/auth/member.get.js | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/server/api/admin/members.get.js b/server/api/admin/members.get.js index 3ababb7..5118bb9 100644 --- a/server/api/admin/members.get.js +++ b/server/api/admin/members.get.js @@ -7,7 +7,9 @@ export default defineEventHandler(async (event) => { await requireAdmin(event) await connectDB() + const projection = Object.keys(Member.schema.paths).join(' ') const members = await Member.find() + .select(projection) .sort({ createdAt: -1 }) .lean() diff --git a/server/api/admin/members/[id].get.js b/server/api/admin/members/[id].get.js index 12fd54d..3c63157 100644 --- a/server/api/admin/members/[id].get.js +++ b/server/api/admin/members/[id].get.js @@ -8,7 +8,8 @@ export default defineEventHandler(async (event) => { await connectDB() - const member = await Member.findById(memberId).lean() + const projection = Object.keys(Member.schema.paths).join(' ') + const member = await Member.findById(memberId).select(projection).lean() if (!member) { throw createError({ statusCode: 404, statusMessage: 'Member not found' }) } diff --git a/server/api/auth/member.get.js b/server/api/auth/member.get.js index 7f0b808..1a4e88b 100644 --- a/server/api/auth/member.get.js +++ b/server/api/auth/member.get.js @@ -17,6 +17,8 @@ export default defineEventHandler(async (event) => { helcimCustomerCode: member.helcimCustomerCode, nextBillingDate: member.nextBillingDate, membershipLevel: `${member.circle}-${member.contributionAmount}`, + slackInvited: member.slackInvited, + slackInvitedAt: member.slackInvitedAt, // Profile fields pronouns: member.pronouns, timeZone: member.timeZone,