Minor Adjustments
This commit is contained in:
parent
1084f5d937
commit
f486d50efa
60 changed files with 1965 additions and 127 deletions
41
libold/server/routes/alerting-route.js
Normal file
41
libold/server/routes/alerting-route.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
import { Router, json as jsonMiddleware } from "express";
|
||||
import {
|
||||
getSilencedTests,
|
||||
upsertAlertSilence,
|
||||
deleteAlertSilence,
|
||||
} from "../database/queries/alerting.js";
|
||||
const router = Router();
|
||||
|
||||
// Apply Middlewares
|
||||
router.use(jsonMiddleware());
|
||||
|
||||
// Get Routes
|
||||
router.get("/silenced", (req, res) => {
|
||||
getSilencedTests().then((t) => res.send(t));
|
||||
});
|
||||
|
||||
// Post Routes
|
||||
router.post("/silence", (req, res) => {
|
||||
const { name, class: className, method, expires, keepExpires } = req.body;
|
||||
if (!name || !className || !method)
|
||||
return res
|
||||
.status(400)
|
||||
.send("'name', 'class', and 'method' are all required Fields!");
|
||||
if (expires === null)
|
||||
return deleteAlertSilence(req.body)
|
||||
.then(() => res.sendStatus(200))
|
||||
.catch((e) => res.status(500).send(e));
|
||||
const { h, m } = keepExpires ? {} : expires;
|
||||
if (!keepExpires && (h == null || m == null))
|
||||
return res.status(400).send("Both 'h' and 'm' are required fields!");
|
||||
if (!keepExpires && (h < 0 || m < 0))
|
||||
return res
|
||||
.status(400)
|
||||
.send("'h' and 'm' must be greater than or equal to 0!");
|
||||
// TODO set max times as well
|
||||
if (!keepExpires && (h > 72 || m > 59))
|
||||
res.status(400).send("'h' and 'm' must not exceed the set maxes!");
|
||||
upsertAlertSilence(req.body).then(() => res.sendStatus(200));
|
||||
});
|
||||
|
||||
export default router;
|
44
libold/server/routes/catalog-route.js
Normal file
44
libold/server/routes/catalog-route.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
import { Router, json as jsonMiddleware } from "express";
|
||||
import {
|
||||
getTests,
|
||||
getPipelineMappings,
|
||||
upsertTest,
|
||||
truncateTests,
|
||||
removeDroppedTests,
|
||||
} from "../database/queries/catalog.js";
|
||||
const router = Router();
|
||||
|
||||
const maxSize = 1024 * 1024 * 100; // 100MB
|
||||
|
||||
// Apply Middlewares
|
||||
router.use(jsonMiddleware({ limit: maxSize }));
|
||||
|
||||
// Get Routes
|
||||
router.get("/tests", (req, res) => {
|
||||
getTests().then((t) => res.json(t));
|
||||
});
|
||||
|
||||
router.get("/pipeline-mappings", (req, res) => {
|
||||
getPipelineMappings().then((m) => res.json(m));
|
||||
});
|
||||
|
||||
// Post Routes
|
||||
router.post("/update", (req, res) => {
|
||||
if (!req.body) return res.status(400).send("Body required!");
|
||||
if (!Array.isArray(req.body))
|
||||
return res.status(400).send("Body must be an array!");
|
||||
const wrongImage = req.body.find(({ image }) => image !== req.body[0].image);
|
||||
if (wrongImage)
|
||||
return res.status(400).send("Tests cannot have unique images!");
|
||||
const testNames = req.body.map(({ name }) => name);
|
||||
|
||||
// Upsert new tests
|
||||
const upserts = Promise.all(
|
||||
req.body.map((catalogItem) => upsertTest(catalogItem))
|
||||
);
|
||||
const dropRm = upserts.then(() => removeDroppedTests(testNames));
|
||||
|
||||
dropRm.then(() => res.sendStatus(200)).catch((e) => res.status(500).send(e));
|
||||
});
|
||||
|
||||
export default router;
|
13
libold/server/routes/dev-route.js
Normal file
13
libold/server/routes/dev-route.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
import { Router, json as jsonMiddleware } from "express";
|
||||
import TestResultsWorker from "../rabbit/workers/TestResultsWorker.js";
|
||||
|
||||
export default function buildDevRoute(pg, skio) {
|
||||
const router = Router();
|
||||
router.use(jsonMiddleware());
|
||||
router.post("/rabbit/TestResults", (req, res) => {
|
||||
const { testResult } = req.body;
|
||||
new TestResultsWorker(skio).onMessage(testResult);
|
||||
res.sendStatus(200);
|
||||
});
|
||||
return router;
|
||||
}
|
8
libold/server/routes/react-route.js
vendored
Normal file
8
libold/server/routes/react-route.js
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
import express, { Router } from "express";
|
||||
import path from "path";
|
||||
const router = Router();
|
||||
router.use("/", express.static(path.resolve("./build")));
|
||||
router.get("/*", (req, res) =>
|
||||
res.sendFile(path.resolve("./build/index.html"))
|
||||
);
|
||||
export default router;
|
27
libold/server/routes/results-route.js
Normal file
27
libold/server/routes/results-route.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
import { Router, json as jsonMiddleware } from "express";
|
||||
import {
|
||||
getCurrentlyFailing,
|
||||
ignoreResult,
|
||||
} from "../database/queries/results.js";
|
||||
const router = Router();
|
||||
|
||||
// Apply Middlewares
|
||||
router.use(jsonMiddleware());
|
||||
|
||||
// Get Routes
|
||||
router.get("/failing", (req, res) => {
|
||||
getCurrentlyFailing().then((f) => res.json(f));
|
||||
});
|
||||
|
||||
// Post Routes
|
||||
router.post("/history", (req, res) => {
|
||||
res.send([]);
|
||||
});
|
||||
|
||||
router.post("/ignore", (req, res) => {
|
||||
if (!req.body || !req.body.id)
|
||||
return res.status(400).send("'id' is required!");
|
||||
ignoreResult(req.body).then(() => res.sendStatus(200));
|
||||
});
|
||||
|
||||
export default router;
|
30
libold/server/routes/router.js
Normal file
30
libold/server/routes/router.js
Normal file
|
@ -0,0 +1,30 @@
|
|||
// Imports
|
||||
import express from "express";
|
||||
|
||||
// Routes
|
||||
import vitals from "../routes/vitals-route.js";
|
||||
import results from "../routes/results-route.js";
|
||||
import alerting from "../routes/alerting-route.js";
|
||||
import react from "../routes/react-route.js";
|
||||
import catalog from "../routes/catalog-route.js";
|
||||
|
||||
import buildDevRoute from "../routes/dev-route.js";
|
||||
|
||||
export default function buildRoutes(pg, skio) {
|
||||
const router = express.Router();
|
||||
// Special Routes
|
||||
router.use(vitals);
|
||||
router.all("/", (req, res) => res.redirect("/qualiteer"));
|
||||
if (process.env.USE_DEV_ROUTER === "true")
|
||||
router.use("/api/dev", buildDevRoute(pg, skio));
|
||||
|
||||
// Middlewares
|
||||
|
||||
// Routes
|
||||
router.use("/qualiteer", react); // Static Build Route
|
||||
router.use("/api/results", results);
|
||||
router.use("/api/alerting", alerting);
|
||||
router.use("/api/catalog", catalog);
|
||||
|
||||
return router;
|
||||
}
|
7
libold/server/routes/vitals-route.js
Normal file
7
libold/server/routes/vitals-route.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
import { Router } from "express";
|
||||
const router = Router();
|
||||
|
||||
// Get Routes
|
||||
router.get("/healthz", (req, res) => res.sendStatus(200));
|
||||
|
||||
export default router;
|
Loading…
Add table
Add a link
Reference in a new issue