From eabbc2211bac8153941c029ef09678f09851da50 Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Mon, 22 Jan 2024 17:21:46 -0500 Subject: [PATCH] - Minor cleanup Signed-off-by: Dave Richer --- server.js | 326 +++++------------------- server/accounting/pbs/pbs-job-export.js | 2 +- server/routes/accountingRoutes.js | 10 + server/routes/adminRoutes.js | 15 ++ server/routes/cdkRoutes.js | 8 + server/routes/dataRoutes.js | 10 + server/routes/emailRoutes.js | 10 + server/routes/intellipayRoutes.js | 11 + server/routes/ioeventRoutes.js | 7 + server/routes/jobRoutes.js | 15 ++ server/routes/mediaRoutes.js | 11 + server/routes/miscellaneousRoutes.js | 33 +++ server/routes/mixDataRoutes.js | 10 + server/routes/osRoutes.js | 9 + server/routes/schedulingRoutes.js | 8 + server/routes/smsRoutes.js | 17 ++ server/routes/techRoutes.js | 8 + server/routes/utilRoutes.js | 9 + 18 files changed, 262 insertions(+), 257 deletions(-) create mode 100644 server/routes/accountingRoutes.js create mode 100644 server/routes/adminRoutes.js create mode 100644 server/routes/cdkRoutes.js create mode 100644 server/routes/dataRoutes.js create mode 100644 server/routes/emailRoutes.js create mode 100644 server/routes/intellipayRoutes.js create mode 100644 server/routes/ioeventRoutes.js create mode 100644 server/routes/jobRoutes.js create mode 100644 server/routes/mediaRoutes.js create mode 100644 server/routes/miscellaneousRoutes.js create mode 100644 server/routes/mixDataRoutes.js create mode 100644 server/routes/osRoutes.js create mode 100644 server/routes/schedulingRoutes.js create mode 100644 server/routes/smsRoutes.js create mode 100644 server/routes/techRoutes.js create mode 100644 server/routes/utilRoutes.js diff --git a/server.js b/server.js index 39a85d2e1..45bcb6756 100644 --- a/server.js +++ b/server.js @@ -1,30 +1,43 @@ +// Import core modules const express = require("express"); const cors = require("cors"); const bodyParser = require("body-parser"); const path = require("path"); 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 multer = require("multer"); -const upload = multer(); -//var enforce = require("express-sslify"); +const http = require("http"); +const {Server} = require("socket.io"); +// Load environment variables require("dotenv").config({ - path: path.resolve( - process.cwd(), - `.env.${process.env.NODE_ENV || "development"}` - ), + path: path.resolve(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 port = process.env.PORT || 5000; -//const port = 5000; - -const http = require("http"); const server = http.createServer(app); -const {Server} = require("socket.io"); const io = new Server(server, { path: "/ws", cors: { @@ -45,258 +58,59 @@ const io = new Server(server, { }, }); exports.io = io; + 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(cookieParser()); app.use(bodyParser.json({limit: "50mb"})); app.use(bodyParser.urlencoded({limit: "50mb", extended: true})); -// app.use(enforce.HTTPS({ trustProtoHeader: true })); -app.use( - cors({credentials: true, exposedHeaders: ["set-cookie"]}) - // cors({ - // credentials: true, - // origin: [ - // "https://test.imex.online", - // "http://localhost:3000", - // "https://imex.online", - // ], - // }) -); +app.use(cors({credentials: true, exposedHeaders: ["set-cookie"]})); +// 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. -const sendEmail = require("./server/email/sendemail.js"); -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) => { +// Default route for forbidden access +app.get("/", (req, res) => { res.status(200).send("Access Forbidden."); }); +// Start server server.listen(port, (error) => { if (error) throw error; - logger.log( - `[${process.env.NODE_ENV || "DEVELOPMENT"}] Server running on port ${port}`, - "INFO", - "api" - ); + logger.log(`[${process.env.NODE_ENV || "DEVELOPMENT"}] Server with ${countRoutes(app)} routes running on port ${port}`, "INFO", "api"); }); diff --git a/server/accounting/pbs/pbs-job-export.js b/server/accounting/pbs/pbs-job-export.js index dd63a975d..08fe9ee14 100644 --- a/server/accounting/pbs/pbs-job-export.js +++ b/server/accounting/pbs/pbs-job-export.js @@ -166,7 +166,7 @@ async function CheckForErrors(socket, response) { CdkBase.createLogEvent( socket, "DEBUG", - `Succesful response from DMS. ${response.Message || ""}` + `Successful response from DMS. ${response.Message || ""}` ); } else { CdkBase.createLogEvent( diff --git a/server/routes/accountingRoutes.js b/server/routes/accountingRoutes.js new file mode 100644 index 000000000..9e390746d --- /dev/null +++ b/server/routes/accountingRoutes.js @@ -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; diff --git a/server/routes/adminRoutes.js b/server/routes/adminRoutes.js new file mode 100644 index 000000000..9fffd1568 --- /dev/null +++ b/server/routes/adminRoutes.js @@ -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; diff --git a/server/routes/cdkRoutes.js b/server/routes/cdkRoutes.js new file mode 100644 index 000000000..9aa234655 --- /dev/null +++ b/server/routes/cdkRoutes.js @@ -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; diff --git a/server/routes/dataRoutes.js b/server/routes/dataRoutes.js new file mode 100644 index 000000000..d4db15523 --- /dev/null +++ b/server/routes/dataRoutes.js @@ -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; diff --git a/server/routes/emailRoutes.js b/server/routes/emailRoutes.js new file mode 100644 index 000000000..51f79079e --- /dev/null +++ b/server/routes/emailRoutes.js @@ -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; \ No newline at end of file diff --git a/server/routes/intellipayRoutes.js b/server/routes/intellipayRoutes.js new file mode 100644 index 000000000..88144f1be --- /dev/null +++ b/server/routes/intellipayRoutes.js @@ -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; diff --git a/server/routes/ioeventRoutes.js b/server/routes/ioeventRoutes.js new file mode 100644 index 000000000..be8ca2ab9 --- /dev/null +++ b/server/routes/ioeventRoutes.js @@ -0,0 +1,7 @@ +const express = require('express'); +const router = express.Router(); +const ioevent = require('../ioevent/ioevent'); + +router.post('/', ioevent.default); + +module.exports = router; diff --git a/server/routes/jobRoutes.js b/server/routes/jobRoutes.js new file mode 100644 index 000000000..f3cc7bf1b --- /dev/null +++ b/server/routes/jobRoutes.js @@ -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; diff --git a/server/routes/mediaRoutes.js b/server/routes/mediaRoutes.js new file mode 100644 index 000000000..3d6d9f69e --- /dev/null +++ b/server/routes/mediaRoutes.js @@ -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; diff --git a/server/routes/miscellaneousRoutes.js b/server/routes/miscellaneousRoutes.js new file mode 100644 index 000000000..bd8e9e961 --- /dev/null +++ b/server/routes/miscellaneousRoutes.js @@ -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; diff --git a/server/routes/mixDataRoutes.js b/server/routes/mixDataRoutes.js new file mode 100644 index 000000000..67559bd9a --- /dev/null +++ b/server/routes/mixDataRoutes.js @@ -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; diff --git a/server/routes/osRoutes.js b/server/routes/osRoutes.js new file mode 100644 index 000000000..04b93300c --- /dev/null +++ b/server/routes/osRoutes.js @@ -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; diff --git a/server/routes/schedulingRoutes.js b/server/routes/schedulingRoutes.js new file mode 100644 index 000000000..36a934102 --- /dev/null +++ b/server/routes/schedulingRoutes.js @@ -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; diff --git a/server/routes/smsRoutes.js b/server/routes/smsRoutes.js new file mode 100644 index 000000000..a642c61bf --- /dev/null +++ b/server/routes/smsRoutes.js @@ -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; diff --git a/server/routes/techRoutes.js b/server/routes/techRoutes.js new file mode 100644 index 000000000..ca6d4c936 --- /dev/null +++ b/server/routes/techRoutes.js @@ -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; diff --git a/server/routes/utilRoutes.js b/server/routes/utilRoutes.js new file mode 100644 index 000000000..173637479 --- /dev/null +++ b/server/routes/utilRoutes.js @@ -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;