feature/Reynolds-and-Reynolds-DMS-API-Integration -Expand

This commit is contained in:
Dave
2025-10-01 14:38:59 -04:00
parent d0eeb7d55d
commit 99b79126c3
7 changed files with 605 additions and 126 deletions

View File

@@ -3,6 +3,9 @@ const router = express.Router();
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
const { RrCombinedSearch, RrGetAdvisors, RrGetParts } = require("../rr/rr-lookup");
const { RrCustomerInsert, RrCustomerUpdate } = require("../rr/rr-customer");
const { CreateRepairOrder, UpdateRepairOrder } = require("../rr/rr-repair-order");
// NOTE: keep parity with /cdk endpoints so UI can flip provider with minimal diff
router.use(validateFirebaseIdTokenMiddleware);
@@ -23,4 +26,86 @@ router.post("/getvehicles", withUserGraphQLClientMiddleware, async (req, res) =>
res.status(501).json({ error: "RR getvehicles not implemented yet" });
});
router.get("/lookup/combined", async (req, res) => {
try {
const params = Object.entries(req.query);
const data = await RrCombinedSearch({ socket: req, redisHelpers: req.sessionUtils, jobid: "ad-hoc", params });
res.status(200).json({ data });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
router.get("/advisors", async (req, res) => {
try {
const params = Object.entries(req.query);
const data = await RrGetAdvisors({ socket: req, redisHelpers: req.sessionUtils, jobid: "ad-hoc", params });
res.status(200).json({ data });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
router.get("/parts", async (req, res) => {
try {
const params = Object.entries(req.query);
const data = await RrGetParts({ socket: req, redisHelpers: req.sessionUtils, jobid: "ad-hoc", params });
res.status(200).json({ data });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
router.post("/customer/insert", async (req, res) => {
try {
const data = await RrCustomerInsert({ socket: req, redisHelpers: req.sessionUtils, JobData: req.body });
res.status(200).json({ data });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
router.put("/customer/update/:id", async (req, res) => {
try {
const data = await RrCustomerUpdate({
socket: req,
redisHelpers: req.sessionUtils,
JobData: req.body.JobData,
existingCustomer: req.body.existingCustomer,
patch: req.body.patch
});
res.status(200).json({ data });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
router.post("/repair-order/create", async (req, res) => {
try {
const data = await CreateRepairOrder({
socket: req,
redisHelpers: req.sessionUtils,
JobData: req.body.JobData,
txEnvelope: req.body.txEnvelope
});
res.status(200).json({ data });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
router.put("/repair-order/update/:id", async (req, res) => {
try {
const data = await UpdateRepairOrder({
socket: req,
redisHelpers: req.sessionUtils,
JobData: req.body.JobData,
txEnvelope: req.body.txEnvelope
});
res.status(200).json({ data });
} catch (e) {
res.status(500).json({ error: e.message });
}
});
module.exports = router;