vvet_backend_1/controllers/panController.js

31 lines
1009 B
JavaScript
Raw Normal View History

2025-05-09 12:46:18 +05:30
const Tesseract = require('tesseract.js');
const fs = require('fs');
// Handle PAN verification logic
const verifyPan = async (req, res) => {
const userPan = req.body.pan;
const imagePath = req.file.path;
try {
const { data: { text } } = await Tesseract.recognize(imagePath, 'eng');
// Regex to extract PAN format: 5 letters, 4 digits, 1 letter
const extractedPan = text.match(/[A-Z]{5}[0-9]{4}[A-Z]{1}/);
// Delete the uploaded file after processing
fs.unlinkSync(imagePath);
if (extractedPan && extractedPan[0] === userPan.toUpperCase()) {
return res.json({ verified: true, extractedPan: extractedPan[0] });
} else {
return res.json({ verified: false, extractedPan: extractedPan ? extractedPan[0] : null });
}
} catch (err) {
// Clean up and respond with an error if any issues arise
fs.unlinkSync(imagePath);
return res.status(500).json({ error: 'Error processing image', details: err.message });
}
};
module.exports = { verifyPan };