feat: rewire routes to BullMQ and speed up documents page
This commit is contained in:
@@ -6,6 +6,7 @@ import multer from "multer";
|
||||
import { forwardToSeleniumClaimAgent } from "../services/seleniumClaimClient";
|
||||
import path from "path";
|
||||
import axios from "axios";
|
||||
import { seleniumQueue } from "../queue/queues";
|
||||
import { Prisma } from "@repo/db/generated/prisma";
|
||||
import { Decimal } from "decimal.js";
|
||||
import {
|
||||
@@ -138,31 +139,27 @@ router.post(
|
||||
massdhpPassword: credentials.password,
|
||||
};
|
||||
|
||||
const result = await forwardToSeleniumClaimAgent(enrichedData, [
|
||||
...pdfs,
|
||||
...images,
|
||||
]);
|
||||
// Encode file buffers as base64 so they can be stored in Redis
|
||||
const filesForQueue = [...pdfs, ...images].map((f) => ({
|
||||
originalname: f.originalname,
|
||||
bufferBase64: f.buffer.toString("base64"),
|
||||
mimetype: f.mimetype,
|
||||
}));
|
||||
|
||||
// Store claimNumber if returned from Selenium
|
||||
if (result?.claimNumber && claimData.claimId) {
|
||||
try {
|
||||
await storage.updateClaim(claimData.claimId, {
|
||||
claimNumber: result.claimNumber,
|
||||
});
|
||||
console.log(`Updated claim ${claimData.claimId} with claimNumber: ${result.claimNumber}`);
|
||||
} catch (updateErr) {
|
||||
console.error("Failed to update claim with claimNumber:", updateErr);
|
||||
}
|
||||
}
|
||||
|
||||
res.json({
|
||||
...result,
|
||||
const job = await seleniumQueue.add("claim-submit", {
|
||||
jobType: "claim-submit",
|
||||
userId: req.user.id,
|
||||
socketId: req.body.socketId,
|
||||
enrichedPayload: enrichedData,
|
||||
files: filesForQueue,
|
||||
claimId: claimData.claimId,
|
||||
});
|
||||
|
||||
return res.json({ jobId: job.id, status: "queued" });
|
||||
} catch (err: any) {
|
||||
console.error(err);
|
||||
return res.status(500).json({
|
||||
error: err.message || "Failed to forward to selenium agent",
|
||||
error: err.message || "Failed to enqueue selenium claim job",
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -319,19 +316,26 @@ router.post(
|
||||
massdhpPassword: credentials.password,
|
||||
};
|
||||
|
||||
const result = await forwardToSeleniumClaimPreAuthAgent(enrichedData, [
|
||||
...pdfs,
|
||||
...images,
|
||||
]);
|
||||
const filesForQueue = [...pdfs, ...images].map((f) => ({
|
||||
originalname: f.originalname,
|
||||
bufferBase64: f.buffer.toString("base64"),
|
||||
mimetype: f.mimetype,
|
||||
}));
|
||||
|
||||
res.json({
|
||||
...result,
|
||||
const job = await seleniumQueue.add("claim-pre-auth", {
|
||||
jobType: "claim-pre-auth",
|
||||
userId: req.user.id,
|
||||
socketId: req.body.socketId,
|
||||
enrichedPayload: enrichedData,
|
||||
files: filesForQueue,
|
||||
claimId: claimData.claimId,
|
||||
});
|
||||
|
||||
return res.json({ jobId: job.id, status: "queued" });
|
||||
} catch (err: any) {
|
||||
console.error(err);
|
||||
return res.status(500).json({
|
||||
error: err.message || "Failed to forward to selenium agent",
|
||||
error: err.message || "Failed to enqueue selenium pre-auth job",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user