Enhance application structure: Add runtime configuration for environment variables, integrate new dependencies for Cloudinary and UI components, and refactor member management features including improved forms and member dashboard. Update styles and layout for better user experience.
This commit is contained in:
parent
6e7e27ac4e
commit
e4a0a9ab0f
61 changed files with 7902 additions and 950 deletions
|
|
@ -1,14 +1,42 @@
|
|||
// server/api/members/create.post.js
|
||||
import Member from '../../models/member'
|
||||
import Member from '../../models/member.js'
|
||||
import { connectDB } from '../../utils/mongoose.js'
|
||||
// Simple payment check function to avoid import issues
|
||||
const requiresPayment = (contributionValue) => contributionValue !== '0'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
// Ensure database is connected
|
||||
await connectDB()
|
||||
|
||||
const body = await readBody(event)
|
||||
|
||||
try {
|
||||
// Check if member already exists
|
||||
const existingMember = await Member.findOne({ email: body.email })
|
||||
if (existingMember) {
|
||||
throw createError({
|
||||
statusCode: 409,
|
||||
statusMessage: 'A member with this email already exists'
|
||||
})
|
||||
}
|
||||
|
||||
const member = new Member(body)
|
||||
await member.save()
|
||||
|
||||
// TODO: Process payment with Helcim if not free tier
|
||||
if (requiresPayment(body.contributionTier)) {
|
||||
// Payment processing will be added here
|
||||
console.log('Payment processing needed for tier:', body.contributionTier)
|
||||
}
|
||||
|
||||
// TODO: Send welcome email
|
||||
console.log('Welcome email should be sent to:', body.email)
|
||||
|
||||
return { success: true, member }
|
||||
} catch (error) {
|
||||
if (error.statusCode) {
|
||||
throw error
|
||||
}
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
statusMessage: error.message
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue