feat: Get json dataset from stream, convert into NudgerData, start to implement DMN concepts

This commit is contained in:
Lucàs
2024-10-02 20:37:44 +02:00
parent ffc1ad3e84
commit 4c92b856c0
53 changed files with 1234 additions and 73 deletions
-9
View File
@@ -1,9 +0,0 @@
import { Router, Request, Response } from "express";
const router = Router();
router.get("/data/nudger", (req: Request, res: Response) => {
res.status(501).send("Not yet implemented");
});
export default router;
-9
View File
@@ -1,9 +0,0 @@
import { Router, Request, Response } from "express";
const router = Router();
router.get("/data/openfoodfacts", (req: Request, res: Response) => {
res.status(501).send("Not yet implemented");
});
export default router;
+2 -4
View File
@@ -1,5 +1,3 @@
import randomizeRouter from "./randomize";
import nudgerRouter from "./data/nudger";
import openDataRouter from "./data/openfoodfacts";
import randomize from "./randomize";
export default [randomizeRouter, nudgerRouter, openDataRouter];
export default randomize;
+26 -5
View File
@@ -1,14 +1,35 @@
import { Router, Request, Response } from "express";
import { Dataset, DatasetCollection } from "../services/dataset";
import { Data } from "../services/data";
import DmnModdle from "dmn-moddle";
import { DMN } from "../services/dmn/DMN";
const router = Router();
router.post("/randomize", (req: Request, res: Response) => {
// TODO: Implement randomize route
// TODO: Parse the DMN file
// TODO:
res.status(200).json({ status: "RANDOMIZED", data: [{}] });
});
router.post("/randomize/:id", async (req: Request, res: Response) => {
const { id } = req.params;
const size: number | undefined = req.query.size
? parseInt(req.query.size as string)
: undefined;
const dataset = DatasetCollection.datasets.find(
(dataset) => dataset.id === id
);
if (!dataset) return res.status(404).json({ status: "NOT_FOUND" });
const a = await DMN.parse(req.body);
const { rootElement, warnings } = await new DmnModdle().fromXML(req.body);
console.log(rootElement);
const data = await dataset.get(size);
return res.status(200).json({ status: "RANDOMIZED", data, a });
});
export default router;