87 lines
3.7 KiB
JavaScript
87 lines
3.7 KiB
JavaScript
const express = require("express");
|
|
const router = express.Router();
|
|
const logger = require("../../server/utils/logger");
|
|
const sendEmail = require("../email/sendemail");
|
|
const data = require("../data/data");
|
|
const bodyParser = require("body-parser");
|
|
const ioevent = require("../ioevent/ioevent");
|
|
const taskHandler = require("../tasks/tasks");
|
|
const os = require("../opensearch/os-handler");
|
|
const eventAuthorizationMiddleware = require("../middleware/eventAuthorizationMIddleware");
|
|
const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware");
|
|
const withUserGraphQLClientMiddleware = require("../middleware/withUserGraphQLClientMiddleware");
|
|
const { taskAssignedEmail, tasksRemindEmail } = require("../email/tasksEmails");
|
|
const { canvastest } = require("../render/canvas-handler");
|
|
const { alertCheck } = require("../alerts/alertcheck");
|
|
|
|
//Test route to ensure Express is responding.
|
|
router.get("/test", eventAuthorizationMiddleware, 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}`);
|
|
});
|
|
|
|
router.get("/test-logs", eventAuthorizationMiddleware, (req, res) => {
|
|
const { logger } = req;
|
|
// // Test 1: Log with a message that exceeds the size limit, triggering an upload to S3.
|
|
const largeMessage = "A".repeat(256 * 1024 + 1); // Message larger than the log size limit
|
|
logger.log(largeMessage, "error", "user123", null, { detail: "large log entry" });
|
|
|
|
// Test 2: Log with a message that is within the size limit, should log directly using winston.
|
|
const smallMessage = "A small log message";
|
|
logger.log(smallMessage, "info", "user123", null, { detail: "small log entry" });
|
|
|
|
// Test 3: Log with the `upload` flag set to `true`, forcing the log to be uploaded to S3.
|
|
logger.log(
|
|
"This log will be uploaded to S3 regardless of size",
|
|
"warning",
|
|
"user123",
|
|
null,
|
|
{ detail: "upload log" },
|
|
true
|
|
);
|
|
|
|
// Test 4: Log with a message that doesn't exceed the size limit and doesn't require an upload.
|
|
logger.log("Normal log entry", "debug", "user123", { id: 4 }, { detail: "normal log entry" });
|
|
|
|
return res.status(500).send("Logs tested.");
|
|
});
|
|
|
|
// Search
|
|
router.post("/search", validateFirebaseIdTokenMiddleware, withUserGraphQLClientMiddleware, os.search);
|
|
router.post("/opensearch", eventAuthorizationMiddleware, os.handler);
|
|
|
|
// IO Events
|
|
router.post("/ioevent", ioevent.default);
|
|
|
|
// Email
|
|
router.post("/sendemail", validateFirebaseIdTokenMiddleware, sendEmail.sendEmail);
|
|
router.post("/emailbounce", bodyParser.text(), sendEmail.emailBounce);
|
|
|
|
// Tasks Email Handler
|
|
router.post("/tasks-assigned-handler", eventAuthorizationMiddleware, taskAssignedEmail);
|
|
router.post("/tasks-remind-handler", eventAuthorizationMiddleware, tasksRemindEmail);
|
|
|
|
// Handlers
|
|
router.post("/record-handler/arms", data.arms);
|
|
router.post("/taskHandler", validateFirebaseIdTokenMiddleware, taskHandler.taskHandler);
|
|
|
|
// Canvas Test
|
|
router.post("/canvastest", validateFirebaseIdTokenMiddleware, canvastest);
|
|
|
|
// Alert Check
|
|
router.post("/alertcheck", eventAuthorizationMiddleware, alertCheck);
|
|
|
|
module.exports = router;
|