326
server.js
326
server.js
@@ -1,30 +1,43 @@
|
|||||||
|
// Import core modules
|
||||||
const express = require("express");
|
const express = require("express");
|
||||||
const cors = require("cors");
|
const cors = require("cors");
|
||||||
const bodyParser = require("body-parser");
|
const bodyParser = require("body-parser");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const compression = require("compression");
|
const compression = require("compression");
|
||||||
const twilio = require("twilio");
|
|
||||||
const logger = require("./server/utils/logger");
|
|
||||||
const fb = require("./server/firebase/firebase-handler");
|
|
||||||
const cookieParser = require("cookie-parser");
|
const cookieParser = require("cookie-parser");
|
||||||
const multer = require("multer");
|
const http = require("http");
|
||||||
const upload = multer();
|
const {Server} = require("socket.io");
|
||||||
//var enforce = require("express-sslify");
|
|
||||||
|
|
||||||
|
// Load environment variables
|
||||||
require("dotenv").config({
|
require("dotenv").config({
|
||||||
path: path.resolve(
|
path: path.resolve(process.cwd(), `.env.${process.env.NODE_ENV || "development"}`)
|
||||||
process.cwd(),
|
|
||||||
`.env.${process.env.NODE_ENV || "development"}`
|
|
||||||
),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Import custom utilities and handlers
|
||||||
|
const logger = require("./server/utils/logger");
|
||||||
|
|
||||||
|
const countRoutes = (app) => {
|
||||||
|
let routeCount = 0;
|
||||||
|
|
||||||
|
app._router.stack.forEach(function(middleware){
|
||||||
|
if(middleware.route){ // if it's a route, count it
|
||||||
|
routeCount++;
|
||||||
|
} else if(middleware.name === 'router'){ // if it's a router, count its routes
|
||||||
|
middleware.handle.stack.forEach(function(handler){
|
||||||
|
if(handler.route){
|
||||||
|
routeCount++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return routeCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Express app and server setup
|
||||||
const app = express();
|
const app = express();
|
||||||
const port = process.env.PORT || 5000;
|
const port = process.env.PORT || 5000;
|
||||||
//const port = 5000;
|
|
||||||
|
|
||||||
const http = require("http");
|
|
||||||
const server = http.createServer(app);
|
const server = http.createServer(app);
|
||||||
const {Server} = require("socket.io");
|
|
||||||
const io = new Server(server, {
|
const io = new Server(server, {
|
||||||
path: "/ws",
|
path: "/ws",
|
||||||
cors: {
|
cors: {
|
||||||
@@ -45,258 +58,59 @@ const io = new Server(server, {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
exports.io = io;
|
exports.io = io;
|
||||||
|
|
||||||
require("./server/web-sockets/web-socket");
|
require("./server/web-sockets/web-socket");
|
||||||
// app.set('trust proxy', true)
|
|
||||||
// app.use(fb.validateFirebaseIdToken);
|
// Import route handlers (assuming these files are structured accordingly)
|
||||||
|
const emailRoutes = require("./server/routes/emailRoutes");
|
||||||
|
const accountingRoutes = require("./server/routes/accountingRoutes");
|
||||||
|
const mediaRoutes = require("./server/routes/mediaRoutes");
|
||||||
|
const smsRoutes = require("./server/routes/smsRoutes");
|
||||||
|
const jobRoutes = require("./server/routes/jobRoutes");
|
||||||
|
const schedulingRoutes = require("./server/routes/schedulingRoutes");
|
||||||
|
const utilRoutes = require("./server/routes/utilRoutes");
|
||||||
|
const dataRoutes = require("./server/routes/dataRoutes");
|
||||||
|
const adminRoutes = require("./server/routes/adminRoutes");
|
||||||
|
const techRoutes = require("./server/routes/techRoutes");
|
||||||
|
const intellipayRoutes = require("./server/routes/intellipayRoutes");
|
||||||
|
const ioeventRoutes = require("./server/routes/ioeventRoutes");
|
||||||
|
const osRoutes = require("./server/routes/osRoutes");
|
||||||
|
const cdkRoutes = require("./server/routes/cdkRoutes");
|
||||||
|
const miscellaneousRoutes = require("./server/routes/miscellaneousRoutes");
|
||||||
|
const mixdataRoutes = require("./server/routes/mixDataRoutes");
|
||||||
|
|
||||||
|
// Middleware
|
||||||
app.use(compression());
|
app.use(compression());
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
app.use(bodyParser.json({limit: "50mb"}));
|
app.use(bodyParser.json({limit: "50mb"}));
|
||||||
app.use(bodyParser.urlencoded({limit: "50mb", extended: true}));
|
app.use(bodyParser.urlencoded({limit: "50mb", extended: true}));
|
||||||
// app.use(enforce.HTTPS({ trustProtoHeader: true }));
|
app.use(cors({credentials: true, exposedHeaders: ["set-cookie"]}));
|
||||||
app.use(
|
|
||||||
cors({credentials: true, exposedHeaders: ["set-cookie"]})
|
|
||||||
// cors({
|
|
||||||
// credentials: true,
|
|
||||||
// origin: [
|
|
||||||
// "https://test.imex.online",
|
|
||||||
// "http://localhost:3000",
|
|
||||||
// "https://imex.online",
|
|
||||||
// ],
|
|
||||||
// })
|
|
||||||
);
|
|
||||||
|
|
||||||
|
// Route groupings
|
||||||
|
app.use('/mixdata', mixdataRoutes);
|
||||||
|
app.use('/email', emailRoutes);
|
||||||
|
app.use('/accounting', accountingRoutes);
|
||||||
|
app.use('/media', mediaRoutes);
|
||||||
|
app.use('/sms', smsRoutes);
|
||||||
|
app.use('/job', jobRoutes);
|
||||||
|
app.use('/scheduling', schedulingRoutes);
|
||||||
|
app.use('/utils', utilRoutes);
|
||||||
|
app.use('/data', dataRoutes);
|
||||||
|
app.use('/admin', adminRoutes);
|
||||||
|
app.use('/tech', techRoutes);
|
||||||
|
app.use('/intellipay', intellipayRoutes);
|
||||||
|
app.use('/ioevent', ioeventRoutes);
|
||||||
|
app.use('/opensearch', osRoutes);
|
||||||
|
app.use('/cdk', cdkRoutes);
|
||||||
|
app.use('/', miscellaneousRoutes);
|
||||||
|
|
||||||
//Email Based Paths.
|
// Default route for forbidden access
|
||||||
const sendEmail = require("./server/email/sendemail.js");
|
app.get("/", (req, res) => {
|
||||||
app.post("/sendemail", fb.validateFirebaseIdToken, sendEmail.sendEmail);
|
|
||||||
app.post("/emailbounce", bodyParser.text(), sendEmail.emailBounce);
|
|
||||||
|
|
||||||
//Test route to ensure Express is responding.
|
|
||||||
app.get("/test", async (req, res) => {
|
|
||||||
const commit = require("child_process").execSync(
|
|
||||||
"git rev-parse --short HEAD"
|
|
||||||
);
|
|
||||||
// console.log(app.get('trust proxy'));
|
|
||||||
// console.log("remoteAddress", req.socket.remoteAddress);
|
|
||||||
// console.log("X-Forwarded-For", req.header('x-forwarded-for'));
|
|
||||||
logger.log("test-api-status", "DEBUG", "api", {commit});
|
|
||||||
// sendEmail.sendServerEmail({
|
|
||||||
// subject: `API Check - ${process.env.NODE_ENV}`,
|
|
||||||
// text: `Server API check has come in. Remote IP: ${req.socket.remoteAddress}, X-Forwarded-For: ${req.header('x-forwarded-for')}`,
|
|
||||||
// });
|
|
||||||
sendEmail.sendServerEmail({
|
|
||||||
subject: `API Check - ${process.env.NODE_ENV}`,
|
|
||||||
text: `Server API check has come in.`,
|
|
||||||
});
|
|
||||||
res.status(200).send(`OK - ${commit}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
//Accounting Qbxml
|
|
||||||
const accountQbxml = require("./server/accounting/qbxml/qbxml");
|
|
||||||
app.post(
|
|
||||||
"/accounting/qbxml/receivables",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
accountQbxml.receivables
|
|
||||||
);
|
|
||||||
app.post(
|
|
||||||
"/accounting/qbxml/payables",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
accountQbxml.payables
|
|
||||||
);
|
|
||||||
app.post(
|
|
||||||
"/accounting/qbxml/payments",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
accountQbxml.payments
|
|
||||||
);
|
|
||||||
|
|
||||||
//Cloudinary Media Paths
|
|
||||||
const media = require("./server/media/media");
|
|
||||||
app.post(
|
|
||||||
"/media/sign",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
media.createSignedUploadURL
|
|
||||||
);
|
|
||||||
app.post("/media/download", fb.validateFirebaseIdToken, media.downloadFiles);
|
|
||||||
app.post("/media/rename", fb.validateFirebaseIdToken, media.renameKeys);
|
|
||||||
app.post("/media/delete", fb.validateFirebaseIdToken, media.deleteFiles);
|
|
||||||
|
|
||||||
//SMS/Twilio Paths
|
|
||||||
const smsReceive = require("./server/sms/receive");
|
|
||||||
app.post(
|
|
||||||
"/sms/receive",
|
|
||||||
twilio.webhook({validate: process.env.NODE_ENV === "PRODUCTION"}),
|
|
||||||
smsReceive.receive
|
|
||||||
);
|
|
||||||
const smsSend = require("./server/sms/send");
|
|
||||||
app.post("/sms/send", fb.validateFirebaseIdToken, smsSend.send);
|
|
||||||
const smsStatus = require("./server/sms/status");
|
|
||||||
app.post(
|
|
||||||
"/sms/status",
|
|
||||||
twilio.webhook({validate: process.env.NODE_ENV === "PRODUCTION"}),
|
|
||||||
smsStatus.status
|
|
||||||
);
|
|
||||||
app.post(
|
|
||||||
"/sms/markConversationRead",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
smsStatus.markConversationRead
|
|
||||||
);
|
|
||||||
|
|
||||||
const job = require("./server/job/job");
|
|
||||||
app.post("/job/totals", fb.validateFirebaseIdToken, job.totals);
|
|
||||||
app.post(
|
|
||||||
"/job/statustransition",
|
|
||||||
// fb.validateFirebaseIdToken,
|
|
||||||
job.statustransition
|
|
||||||
);
|
|
||||||
app.post("/job/totalsssu", fb.validateFirebaseIdToken, job.totalsSsu);
|
|
||||||
app.post("/job/costing", fb.validateFirebaseIdToken, job.costing);
|
|
||||||
app.get("/job/lifecycle", fb.validateFirebaseIdToken, job.lifecycle);
|
|
||||||
|
|
||||||
app.post("/job/costingmulti", fb.validateFirebaseIdToken, job.costingmulti);
|
|
||||||
const partsScan = require("./server/parts-scan/parts-scan");
|
|
||||||
app.post("/job/partsscan", fb.validateFirebaseIdToken, partsScan.partsScan);
|
|
||||||
//Scheduling
|
|
||||||
const scheduling = require("./server/scheduling/scheduling-job");
|
|
||||||
app.post("/scheduling/job", fb.validateFirebaseIdToken, scheduling.job);
|
|
||||||
|
|
||||||
//Handlebars Paths for Email/Report Rendering
|
|
||||||
// var renderHandlebars = require("./server/render/renderHandlebars");
|
|
||||||
// app.post("/render", fb.validateFirebaseIdToken, renderHandlebars.render);
|
|
||||||
const inlineCss = require("./server/render/inlinecss");
|
|
||||||
app.post("/render/inlinecss", fb.validateFirebaseIdToken, inlineCss.inlinecss);
|
|
||||||
|
|
||||||
// app.post(
|
|
||||||
// "/notifications/send",
|
|
||||||
|
|
||||||
// fb.sendNotification
|
|
||||||
// );
|
|
||||||
app.post("/notifications/subscribe", fb.validateFirebaseIdToken, fb.subscribe);
|
|
||||||
app.post(
|
|
||||||
"/notifications/unsubscribe",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
fb.unsubscribe
|
|
||||||
);
|
|
||||||
app.post("/adm/updateuser", fb.validateFirebaseIdToken, fb.updateUser);
|
|
||||||
app.post("/adm/getuser", fb.validateFirebaseIdToken, fb.getUser);
|
|
||||||
app.post("/adm/createuser", fb.validateFirebaseIdToken, fb.createUser);
|
|
||||||
const adm = require("./server/admin/adminops");
|
|
||||||
app.post(
|
|
||||||
"/adm/createassociation",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
fb.validateAdmin,
|
|
||||||
adm.createAssociation
|
|
||||||
);
|
|
||||||
app.post(
|
|
||||||
"/adm/createshop",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
fb.validateAdmin,
|
|
||||||
adm.createShop
|
|
||||||
);
|
|
||||||
app.post(
|
|
||||||
"/adm/updateshop",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
fb.validateAdmin,
|
|
||||||
adm.updateShop
|
|
||||||
);
|
|
||||||
app.post(
|
|
||||||
"/adm/updatecounter",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
fb.validateAdmin,
|
|
||||||
adm.updateCounter
|
|
||||||
);
|
|
||||||
|
|
||||||
//Stripe Processing
|
|
||||||
// var stripe = require("./server/stripe/payment");
|
|
||||||
// app.post("/stripe/payment", fb.validateFirebaseIdToken, stripe.payment);
|
|
||||||
// app.post(
|
|
||||||
// "/stripe/mobilepayment",
|
|
||||||
// fb.validateFirebaseIdToken,
|
|
||||||
// stripe.mobile_payment
|
|
||||||
// );
|
|
||||||
|
|
||||||
//Tech Console
|
|
||||||
const tech = require("./server/tech/tech");
|
|
||||||
app.post("/tech/login", fb.validateFirebaseIdToken, tech.techLogin);
|
|
||||||
|
|
||||||
const utils = require("./server/utils/utils");
|
|
||||||
app.post("/utils/time", utils.servertime);
|
|
||||||
app.post("/utils/jsr", fb.validateFirebaseIdToken, utils.jsrAuth);
|
|
||||||
const qbo = require("./server/accounting/qbo/qbo");
|
|
||||||
app.post("/qbo/authorize", fb.validateFirebaseIdToken, qbo.authorize);
|
|
||||||
app.get("/qbo/callback", qbo.callback);
|
|
||||||
app.post("/qbo/receivables", fb.validateFirebaseIdToken, qbo.receivables);
|
|
||||||
app.post("/qbo/payables", fb.validateFirebaseIdToken, qbo.payables);
|
|
||||||
app.post("/qbo/payments", fb.validateFirebaseIdToken, qbo.payments);
|
|
||||||
|
|
||||||
const data = require("./server/data/data");
|
|
||||||
app.post("/data/ah", data.autohouse);
|
|
||||||
app.post("/data/cc", data.claimscorp);
|
|
||||||
app.post("/data/kaizen", data.kaizen);
|
|
||||||
app.post("/record-handler/arms", data.arms);
|
|
||||||
|
|
||||||
const taskHandler = require("./server/tasks/tasks");
|
|
||||||
app.post("/taskHandler", fb.validateFirebaseIdToken, taskHandler.taskHandler);
|
|
||||||
|
|
||||||
const mixdataUpload = require("./server/mixdata/mixdata");
|
|
||||||
|
|
||||||
app.post(
|
|
||||||
"/mixdata/upload",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
upload.any(),
|
|
||||||
mixdataUpload.mixdataUpload
|
|
||||||
);
|
|
||||||
|
|
||||||
const intellipay = require("./server/intellipay/intellipay");
|
|
||||||
app.post(
|
|
||||||
"/intellipay/lightbox_credentials",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
intellipay.lightbox_credentials
|
|
||||||
);
|
|
||||||
|
|
||||||
app.post(
|
|
||||||
"/intellipay/payment_refund",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
intellipay.payment_refund
|
|
||||||
);
|
|
||||||
|
|
||||||
app.post(
|
|
||||||
"/intellipay/generate_payment_url",
|
|
||||||
fb.validateFirebaseIdToken,
|
|
||||||
intellipay.generate_payment_url
|
|
||||||
);
|
|
||||||
|
|
||||||
app.post(
|
|
||||||
"/intellipay/postback",
|
|
||||||
// fb.validateFirebaseIdToken,
|
|
||||||
intellipay.postback
|
|
||||||
);
|
|
||||||
|
|
||||||
const ioevent = require("./server/ioevent/ioevent");
|
|
||||||
app.post("/ioevent", ioevent.default);
|
|
||||||
// app.post("/newlog", (req, res) => {
|
|
||||||
// const { message, type, user, record, object } = req.body;
|
|
||||||
// logger.log(message, type, user, record, object);
|
|
||||||
// });
|
|
||||||
|
|
||||||
const os = require("./server/opensearch/os-handler");
|
|
||||||
app.post(
|
|
||||||
"/opensearch", //fb.validateFirebaseIdToken,
|
|
||||||
os.handler
|
|
||||||
);
|
|
||||||
app.post("/search", fb.validateFirebaseIdToken, os.search);
|
|
||||||
|
|
||||||
const cdkGetMake = require("./server/cdk/cdk-get-makes");
|
|
||||||
app.post("/cdk/getvehicles", fb.validateFirebaseIdToken, cdkGetMake.default);
|
|
||||||
|
|
||||||
app.get("/", async (req, res) => {
|
|
||||||
res.status(200).send("Access Forbidden.");
|
res.status(200).send("Access Forbidden.");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Start server
|
||||||
server.listen(port, (error) => {
|
server.listen(port, (error) => {
|
||||||
if (error) throw error;
|
if (error) throw error;
|
||||||
logger.log(
|
logger.log(`[${process.env.NODE_ENV || "DEVELOPMENT"}] Server with ${countRoutes(app)} routes running on port ${port}`, "INFO", "api");
|
||||||
`[${process.env.NODE_ENV || "DEVELOPMENT"}] Server running on port ${port}`,
|
|
||||||
"INFO",
|
|
||||||
"api"
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ async function CheckForErrors(socket, response) {
|
|||||||
CdkBase.createLogEvent(
|
CdkBase.createLogEvent(
|
||||||
socket,
|
socket,
|
||||||
"DEBUG",
|
"DEBUG",
|
||||||
`Succesful response from DMS. ${response.Message || ""}`
|
`Successful response from DMS. ${response.Message || ""}`
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
CdkBase.createLogEvent(
|
CdkBase.createLogEvent(
|
||||||
|
|||||||
10
server/routes/accountingRoutes.js
Normal file
10
server/routes/accountingRoutes.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const accountQbxml = require('../accounting/qbxml/qbxml');
|
||||||
|
|
||||||
|
router.post('/qbxml/receivables', fb.validateFirebaseIdToken, accountQbxml.receivables);
|
||||||
|
router.post('/qbxml/payables', fb.validateFirebaseIdToken, accountQbxml.payables);
|
||||||
|
router.post('/qbxml/payments', fb.validateFirebaseIdToken, accountQbxml.payments);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
15
server/routes/adminRoutes.js
Normal file
15
server/routes/adminRoutes.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const adm = require('../admin/adminops');
|
||||||
|
|
||||||
|
|
||||||
|
router.post('/createassociation', fb.validateFirebaseIdToken, fb.validateAdmin, adm.createAssociation);
|
||||||
|
router.post('/createshop', fb.validateFirebaseIdToken, fb.validateAdmin, adm.createShop);
|
||||||
|
router.post('/updateshop', fb.validateFirebaseIdToken, fb.validateAdmin, adm.updateShop);
|
||||||
|
router.post('/updatecounter', fb.validateFirebaseIdToken, fb.validateAdmin, adm.updateCounter);
|
||||||
|
router.post('/updateuser', fb.validateFirebaseIdToken, fb.updateUser);
|
||||||
|
router.post('/getuser', fb.validateFirebaseIdToken, fb.getUser);
|
||||||
|
router.post('/createuser', fb.validateFirebaseIdToken, fb.createUser);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
8
server/routes/cdkRoutes.js
Normal file
8
server/routes/cdkRoutes.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const cdkGetMake = require('../cdk/cdk-get-makes');
|
||||||
|
|
||||||
|
router.post('/getvehicles', fb.validateFirebaseIdToken, cdkGetMake.default);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
10
server/routes/dataRoutes.js
Normal file
10
server/routes/dataRoutes.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const data = require('../data/data');
|
||||||
|
|
||||||
|
router.post('/ah', data.autohouse);
|
||||||
|
router.post('/cc', data.claimscorp);
|
||||||
|
router.post('/kaizen', data.kaizen);
|
||||||
|
router.post('/arms', data.arms);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
10
server/routes/emailRoutes.js
Normal file
10
server/routes/emailRoutes.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const bodyParser = require('body-parser');
|
||||||
|
const sendEmail = require('../email/sendemail');
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
|
||||||
|
router.post('/sendemail', fb.validateFirebaseIdToken, sendEmail.sendEmail);
|
||||||
|
router.post('/emailbounce', bodyParser.text(), sendEmail.emailBounce);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
11
server/routes/intellipayRoutes.js
Normal file
11
server/routes/intellipayRoutes.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const intellipay = require('../intellipay/intellipay');
|
||||||
|
|
||||||
|
router.post('/lightbox_credentials', fb.validateFirebaseIdToken, intellipay.lightbox_credentials);
|
||||||
|
router.post('/payment_refund', fb.validateFirebaseIdToken, intellipay.payment_refund);
|
||||||
|
router.post('/generate_payment_url', fb.validateFirebaseIdToken, intellipay.generate_payment_url);
|
||||||
|
router.post('/postback', intellipay.postback);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
7
server/routes/ioeventRoutes.js
Normal file
7
server/routes/ioeventRoutes.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const ioevent = require('../ioevent/ioevent');
|
||||||
|
|
||||||
|
router.post('/', ioevent.default);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
15
server/routes/jobRoutes.js
Normal file
15
server/routes/jobRoutes.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const job = require('../job/job');
|
||||||
|
const partsScan = require('../parts-scan/parts-scan');
|
||||||
|
|
||||||
|
router.post('/totals', fb.validateFirebaseIdToken, job.totals);
|
||||||
|
router.post('/statustransition', fb.validateFirebaseIdToken, job.statustransition);
|
||||||
|
router.post('/totalsssu', fb.validateFirebaseIdToken, job.totalsSsu);
|
||||||
|
router.post('/costing', fb.validateFirebaseIdToken, job.costing);
|
||||||
|
router.get('/lifecycle', fb.validateFirebaseIdToken, job.lifecycle);
|
||||||
|
router.post('/costingmulti', fb.validateFirebaseIdToken, job.costingmulti);
|
||||||
|
router.post('/partsscan', fb.validateFirebaseIdToken, partsScan.partsScan);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
11
server/routes/mediaRoutes.js
Normal file
11
server/routes/mediaRoutes.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const media = require('../media/media');
|
||||||
|
|
||||||
|
router.post('/sign', fb.validateFirebaseIdToken, media.createSignedUploadURL);
|
||||||
|
router.post('/download', fb.validateFirebaseIdToken, media.downloadFiles);
|
||||||
|
router.post('/rename', fb.validateFirebaseIdToken, media.renameKeys);
|
||||||
|
router.post('/delete', fb.validateFirebaseIdToken, media.deleteFiles);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
33
server/routes/miscellaneousRoutes.js
Normal file
33
server/routes/miscellaneousRoutes.js
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const logger = require("../../server/utils/logger");
|
||||||
|
const sendEmail = require("../email/sendemail");
|
||||||
|
|
||||||
|
// Import any necessary handlers or utilities
|
||||||
|
|
||||||
|
// Define miscellaneous routes here
|
||||||
|
// Example:
|
||||||
|
// router.get('/some-route', someHandler);
|
||||||
|
|
||||||
|
//Test route to ensure Express is responding.
|
||||||
|
router.get("/test", async function (req, res) {
|
||||||
|
const commit = require("child_process").execSync(
|
||||||
|
"git rev-parse --short HEAD"
|
||||||
|
);
|
||||||
|
// console.log(app.get('trust proxy'));
|
||||||
|
// console.log("remoteAddress", req.socket.remoteAddress);
|
||||||
|
// console.log("X-Forwarded-For", req.header('x-forwarded-for'));
|
||||||
|
logger.log("test-api-status", "DEBUG", "api", { commit });
|
||||||
|
// sendEmail.sendServerEmail({
|
||||||
|
// subject: `API Check - ${process.env.NODE_ENV}`,
|
||||||
|
// text: `Server API check has come in. Remote IP: ${req.socket.remoteAddress}, X-Forwarded-For: ${req.header('x-forwarded-for')}`,
|
||||||
|
// });
|
||||||
|
sendEmail.sendServerEmail({
|
||||||
|
subject: `API Check - ${process.env.NODE_ENV}`,
|
||||||
|
text: `Server API check has come in.`,
|
||||||
|
});
|
||||||
|
res.status(200).send(`OK - ${commit}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
10
server/routes/mixDataRoutes.js
Normal file
10
server/routes/mixDataRoutes.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const multer = require('multer');
|
||||||
|
const upload = multer();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const mixdataUpload = require('../mixdata/mixdata');
|
||||||
|
|
||||||
|
router.post('/upload', fb.validateFirebaseIdToken, upload.any(), mixdataUpload.mixdataUpload);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
9
server/routes/osRoutes.js
Normal file
9
server/routes/osRoutes.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const osHandler = require('../opensearch/os-handler');
|
||||||
|
|
||||||
|
router.post('/', osHandler.handler);
|
||||||
|
router.post('/search', fb.validateFirebaseIdToken, osHandler.search);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
8
server/routes/schedulingRoutes.js
Normal file
8
server/routes/schedulingRoutes.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const scheduling = require('../scheduling/scheduling-job');
|
||||||
|
|
||||||
|
router.post('/job', fb.validateFirebaseIdToken, scheduling.job);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
17
server/routes/smsRoutes.js
Normal file
17
server/routes/smsRoutes.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const twilio = require('twilio');
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const smsReceive = require('../sms/receive');
|
||||||
|
const smsSend = require('../sms/send');
|
||||||
|
const smsStatus = require('../sms/status');
|
||||||
|
|
||||||
|
// Twilio Webhook Middleware for production
|
||||||
|
const twilioWebhookMiddleware = twilio.webhook({ validate: process.env.NODE_ENV === "PRODUCTION" });
|
||||||
|
|
||||||
|
router.post('/receive', twilioWebhookMiddleware, smsReceive.receive);
|
||||||
|
router.post('/send', fb.validateFirebaseIdToken, smsSend.send);
|
||||||
|
router.post('/status', twilioWebhookMiddleware, smsStatus.status);
|
||||||
|
router.post('/markConversationRead', fb.validateFirebaseIdToken, smsStatus.markConversationRead);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
8
server/routes/techRoutes.js
Normal file
8
server/routes/techRoutes.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const tech = require('../tech/tech');
|
||||||
|
|
||||||
|
router.post('/login', fb.validateFirebaseIdToken, tech.techLogin);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
9
server/routes/utilRoutes.js
Normal file
9
server/routes/utilRoutes.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fb = require('../firebase/firebase-handler');
|
||||||
|
const utils = require('../utils/utils');
|
||||||
|
|
||||||
|
router.post('/time', utils.servertime);
|
||||||
|
router.post('/jsr', fb.validateFirebaseIdToken, utils.jsrAuth);
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
Reference in New Issue
Block a user