56 lines
2.0 KiB
JavaScript
56 lines
2.0 KiB
JavaScript
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;
|