2025-05-17 00:11:16 +05:30
|
|
|
const express = require("express");
|
|
|
|
|
const router = express.Router();
|
|
|
|
|
const multer = require("multer");
|
|
|
|
|
const fs = require("fs");
|
|
|
|
|
const FormData = require("form-data");
|
|
|
|
|
const axios = require("axios");
|
|
|
|
|
const db = require("../db"); // MySQL connection
|
|
|
|
|
|
|
|
|
|
const upload = multer({ dest: "uploads/" });
|
|
|
|
|
|
|
|
|
|
router.post("/extract-document", upload.single("document"), async (req, res) => {
|
|
|
|
|
const { user_id, document_type } = req.body;
|
|
|
|
|
const file = req.file;
|
|
|
|
|
|
|
|
|
|
if (!file || !document_type || !user_id) {
|
|
|
|
|
return res.status(400).json({ message: "Missing required fields." });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
const formData = new FormData();
|
|
|
|
|
formData.append("document", fs.createReadStream(file.path));
|
|
|
|
|
|
2025-05-17 13:53:36 +05:30
|
|
|
const response = await axios.post("https://api.vvet.in/extract-text", formData, {
|
2025-05-17 00:11:16 +05:30
|
|
|
headers: formData.getHeaders(),
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const extractedText = response.data.text || "";
|
|
|
|
|
|
|
|
|
|
// Store in MySQL
|
|
|
|
|
await db.execute(
|
|
|
|
|
"INSERT INTO extracted_documents (user_id, document_type, original_filename, extracted_text) VALUES (?, ?, ?, ?)",
|
|
|
|
|
[user_id, document_type, file.originalname, extractedText]
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Cleanup uploaded file
|
|
|
|
|
fs.unlinkSync(file.path);
|
|
|
|
|
|
|
|
|
|
res.json({ message: "Text extracted and stored successfully.", extractedText });
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error(err);
|
|
|
|
|
res.status(500).json({ message: "Document extraction failed." });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
module.exports = router;
|