/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.
37 lines
1.1 KiB
JavaScript
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,
|
|
};
|
|
});
|