ghostguild-org/server/api/events/[id]/tickets/check-eligibility.post.js
Jennie Robinson Faber 025c1a180f Add Zod validation to all API endpoints and remove debug test route
Adds schema-based input validation across helcim, events, members,
series, admin, and updates API endpoints. Removes the peer-support
debug test endpoint. Adds validation test coverage.
2026-03-01 17:04:26 +00:00

47 lines
1.1 KiB
JavaScript

import Member from "../../../../models/member.js";
import { connectDB } from "../../../../utils/mongoose.js";
/**
* POST /api/events/[id]/tickets/check-eligibility
* Check if a user is eligible for member pricing
* Body: { email }
*/
export default defineEventHandler(async (event) => {
try {
await connectDB();
const body = await validateBody(event, ticketEligibilitySchema);
// Check if user is a member
const member = await Member.findOne({
email: body.email.toLowerCase(),
}).select("email name circle contributionTier");
if (!member) {
return {
isMember: false,
eligibleForMemberPricing: false,
};
}
return {
isMember: true,
eligibleForMemberPricing: true,
memberInfo: {
circle: member.circle,
tier: member.contributionTier,
name: member.name,
},
};
} catch (error) {
console.error("Error checking eligibility:", error);
if (error.statusCode) {
throw error;
}
throw createError({
statusCode: 500,
statusMessage: "Failed to check eligibility",
});
}
});