ghostguild-org/server/api/auth/member.get.js
Jennie Robinson Faber 7f0a586311 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.
2026-04-30 22:25:35 +01:00

37 lines
1.1 KiB
JavaScript

import { requireAuth } from "../../utils/auth.js";
export default defineEventHandler(async (event) => {
const member = await requireAuth(event);
return {
_id: member._id,
id: member._id,
email: member.email,
name: member.name,
status: member.status,
role: member.role || 'member',
circle: member.circle,
contributionAmount: member.contributionAmount,
billingCadence: member.billingCadence,
helcimCustomerId: member.helcimCustomerId,
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,
avatar: member.avatar,
studio: member.studio,
bio: member.bio,
location: member.location,
socialLinks: member.socialLinks,
craftTags: member.craftTags,
board: member.board,
showInDirectory: member.showInDirectory,
notifications: member.notifications,
createdAt: member.createdAt,
onboarding: member.onboarding,
};
});