ghostguild-org/server/api/events/[id]/tickets/check-eligibility.post.js

54 lines
1.2 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 readBody(event);
if (!body.email) {
throw createError({
statusCode: 400,
statusMessage: "Email is required",
});
}
// 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",
});
}
});