mirror of
				https://github.com/Djeeberjr/fw-anwesenheit.git
				synced 2025-11-03 23:24:10 +00:00 
			
		
		
		
	added new routes & more mock data to server mock
This commit is contained in:
		
							parent
							
								
									bd3f6731fd
								
							
						
					
					
						commit
						f5d4ae1e05
					
				
							
								
								
									
										99
									
								
								web/mock/data.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								web/mock/data.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,99 @@
 | 
			
		||||
{
 | 
			
		||||
  "mapping": [
 | 
			
		||||
    [
 | 
			
		||||
      "123456789ABC",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Feuerwehrman",
 | 
			
		||||
        "last": "Sam"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
      "A1B2C3D4E5F6",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Luna",
 | 
			
		||||
        "last": "Starforge"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
      "0F1E2D3C4B5A",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Gareth",
 | 
			
		||||
        "last": "Ironwill"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
      "ABCDEF123456",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Nina",
 | 
			
		||||
        "last": "Skylark"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
      "654321FEDCBA",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Tobias",
 | 
			
		||||
        "last": "Marrow"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
      "DEADBEEFCAFE",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Astra",
 | 
			
		||||
        "last": "Vale"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
      "BADA55C0FFEE",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Rowan",
 | 
			
		||||
        "last": "Tempest"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
      "C001D00D1337",
 | 
			
		||||
      {
 | 
			
		||||
        "first": "Juniper",
 | 
			
		||||
        "last": "Voss"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  ],
 | 
			
		||||
  "days": [
 | 
			
		||||
    {
 | 
			
		||||
      "date": 20372,
 | 
			
		||||
      "ids": [
 | 
			
		||||
        "123456789ABC",
 | 
			
		||||
        "A1B2C3D4E5F6"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "date": 20373,
 | 
			
		||||
      "ids": [
 | 
			
		||||
        "0F1E2D3C4B5A",
 | 
			
		||||
        "ABCDEF123456"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "date": 20374,
 | 
			
		||||
      "ids": [
 | 
			
		||||
        "654321FEDCBA",
 | 
			
		||||
        "DEADBEEFCAFE",
 | 
			
		||||
        "BADA55C0FFEE"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "date": 20375,
 | 
			
		||||
      "ids": [
 | 
			
		||||
        "C001D00D1337",
 | 
			
		||||
        "A1B2C3D4E5F6",
 | 
			
		||||
        "123456789ABC"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "date": 20376,
 | 
			
		||||
      "ids": [
 | 
			
		||||
        "N0T3X1ST1D0",
 | 
			
		||||
        "654321FEDCBA"
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
@ -1,20 +1,14 @@
 | 
			
		||||
import express from "express";
 | 
			
		||||
import bodyParser from "body-parser";
 | 
			
		||||
 | 
			
		||||
import mockData from "./data.json" with {type: "json"};
 | 
			
		||||
 | 
			
		||||
const app = express();
 | 
			
		||||
const port = 3000;
 | 
			
		||||
 | 
			
		||||
app.use(bodyParser.json());
 | 
			
		||||
const SECS_IN_DAY = 86_400;
 | 
			
		||||
 | 
			
		||||
let mappings = [
 | 
			
		||||
  [
 | 
			
		||||
    "123456789ABC",
 | 
			
		||||
    {
 | 
			
		||||
      first: "Feuerwehrman",
 | 
			
		||||
      last: "Sam",
 | 
			
		||||
    },
 | 
			
		||||
  ],
 | 
			
		||||
];
 | 
			
		||||
app.use(bodyParser.json());
 | 
			
		||||
 | 
			
		||||
function generateRandomId() {
 | 
			
		||||
  const chars = "ABCDEF0123456789";
 | 
			
		||||
@ -27,7 +21,7 @@ function generateRandomId() {
 | 
			
		||||
 | 
			
		||||
// GET /api/mapping
 | 
			
		||||
app.get("/api/mapping", (req, res) => {
 | 
			
		||||
  res.json(mappings);
 | 
			
		||||
  res.json(mockData.mapping);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// POST /api/mapping
 | 
			
		||||
@ -45,11 +39,45 @@ app.post("/api/mapping", (req, res) => {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Add new mapping
 | 
			
		||||
  mappings.push([id, name]);
 | 
			
		||||
  mockData.mappings.push([id, name]);
 | 
			
		||||
 | 
			
		||||
  res.status(201).send("");
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
app.get("/api/day", (req, res) => {
 | 
			
		||||
  let day;
 | 
			
		||||
 | 
			
		||||
  if (req.query.day) {
 | 
			
		||||
    day = parseInt(req.query.day, 10);
 | 
			
		||||
  }else if (req.query.timestamp) {
 | 
			
		||||
    let ts = parseInt(req.query.timestamp, 10);
 | 
			
		||||
    day = ts / SECS_IN_DAY;
 | 
			
		||||
  }else {
 | 
			
		||||
    return res.status(400).json({ error: "Missing or invalid 'day' parameter" });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (isNaN(day)) {
 | 
			
		||||
    return res.status(400).json({ error: "Missing or invalid 'day' parameter" });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  let foundDay = mockData.days.find(e => e.date == day);
 | 
			
		||||
 | 
			
		||||
  if (!foundDay) {
 | 
			
		||||
    return res.status(404).send("Not found");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  res.status(200).json(foundDay);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
app.get("/api/days", (req,res) => {
 | 
			
		||||
 | 
			
		||||
  let qFrom = parseInt(req.query.from) / SECS_IN_DAY;
 | 
			
		||||
  let qTo = parseInt(req.query.to) / SECS_IN_DAY;
 | 
			
		||||
 | 
			
		||||
  let days = mockData.days.filter(e => e.date >= qFrom && e.date <= qTo).map(e => e.date);
 | 
			
		||||
 | 
			
		||||
  res.status(200).json(days);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// SSE route: /api/idevent
 | 
			
		||||
app.get("/api/idevent", (req, res) => {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user