vvet_backend_new/routes/extractDocument.js

46 lines
1.4 KiB
JavaScript
Raw Normal View History

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;