112 lines
3.6 KiB
JavaScript
112 lines
3.6 KiB
JavaScript
const express = require("express");
|
|
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);
|
|
|
|
// Placeholder endpoints — implement as needed:
|
|
router.post("/calculate-allocations", withUserGraphQLClientMiddleware, async (req, res) => {
|
|
try {
|
|
const Calc = require("../cdk/cdk-calculate-allocations").default; // reuse for now
|
|
const result = await Calc(req, req.body.jobid, true); // true->verbose style like Fortellis
|
|
res.status(200).json({ data: result });
|
|
} catch (e) {
|
|
res.status(500).json({ error: e.message });
|
|
}
|
|
});
|
|
|
|
// Example: load RR makes/models someday
|
|
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;
|