const express = require("express"); const router = express.Router(); const multer = require("multer"); const upload = multer({ dest: "uploads/" }); // or your existing multer config const { donorPool } = require("../db"); // Helper: get filename from uploaded files const getFileName = (files, field) => files && files[field] && files[field][0] ? files[field][0].filename : null; // Donor submission controller function const submitDonor = (req, res) => { const files = req.files || {}; const { name, email, age, dob, phone, pan_number, bank_account_holder_name, bank_name, bank_account_number, ifsc_code, donation_amount, payment_method } = req.body; if (!name || !donation_amount || !payment) { return res.status(400).json({ error: 'Missing required fields' }); } else { const pan_document = getFileName(files, 'pan_document'); const transaction_screenshot = getFileName(files, 'transaction_screenshot'); const sql = ` INSERT INTO donors ( name, email, age, dob, phone, pan_number, pan_document, bank_account_holder_name, bank_name, bank_account_number, ifsc_code, donation_amount, payment, transaction_screenshot ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) `; const values = [ name, email || null, age || null, dob || null, phone || null, pan_number || null, pan_document, bank_account_holder_name || null, bank_name || null, bank_account_number || null, ifsc_code || null, donation_amount, payment, transaction_screenshot ]; donorPool.query(sql, values, (err, results) => { if (err) { console.error('Donor Insert Error:', err); return res.status(500).json({ error: 'Failed to insert donor data' }); } res.json({ message: 'Donor data submitted', id: results.insertId }); }); } }; // Route definition router.post("/donor/submit", upload.fields([ { name: "pan_document", maxCount: 1 }, { name: "transaction_screenshot", maxCount: 1 } ]), submitDonor); module.exports = router;