- Delete server/api/members/me/board.patch.js and server/api/board/suggestions.get.js - Add boardSlackHandle to memberProfileUpdateSchema; remove boardPrivacy - profile.patch.js: write boardSlackHandle -> board.slackHandle; drop boardPrivacy - Remove privacy.board field from Member model - onboarding/status.get.js: hasProfileTags now requires only craftTags; hasEngagedBoard uses BoardPost.exists - onboarding/track.post.js: graduation check uses BoardPost.exists instead of board.topics elemMatch - members/[id].get.js and directory.get.js: reduce board response to slackHandle only; drop connectionTag and peerSupport filters
26 lines
711 B
JavaScript
26 lines
711 B
JavaScript
import { requireAuth } from '../../utils/auth.js'
|
|
import BoardPost from '../../models/boardPost.js'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const member = await requireAuth(event)
|
|
|
|
const hasProfileTags = member.craftTags.length > 0
|
|
|
|
const hasVisitedEvent = !!member.onboarding?.eventPageVisited
|
|
|
|
const hasPosted = await BoardPost.exists({ author: member._id })
|
|
const hasEngagedBoard =
|
|
!!member.onboarding?.boardPageVisited && !!hasPosted
|
|
|
|
const hasClickedWiki = !!member.onboarding?.wikiClicked
|
|
|
|
return {
|
|
goals: {
|
|
hasProfileTags,
|
|
hasVisitedEvent,
|
|
hasEngagedBoard,
|
|
hasClickedWiki,
|
|
},
|
|
completedAt: member.onboarding?.completedAt || null,
|
|
}
|
|
})
|