import {NextFunction, Request, Response} from "express"; import express from "express"; import cors from "cors"; import {loadLandingPage, loadConformance, loadCollections, loadSubCollections} from "./src/Ogc3D"; import {mapError} from "./src/ErrorHandler"; const app = express(); app.use(cors()); const PORT = 3001; // Routes app.get("/", (req, res) => { console.debug("Received request for Landing Page"); res.send(loadLandingPage()); }); app.get("/conformance", (req, res) => { console.debug("Received request for conformance"); res.send(loadConformance()); }); app.get("/collections", (req, res) => { console.debug("Received request for collections"); res.send(loadCollections()); }); app.get("/collections/*", (req, res) => { console.debug("Received request for subcollections"); const subCollections = req.params[0].split("/").filter(val => !!val); res.send(loadSubCollections(subCollections, req.query.format as string | undefined)); }); // Error Handling // noinspection JSUnusedLocalSymbols app.use(function (err: Error, req: Request, res: Response, next: NextFunction) { const errorResponse = mapError(err); res.status(errorResponse.status).send(errorResponse); }); app.use("/public",express.static("public")); // Start Application app.listen(PORT, () => { console.log(`⚡️[server]: Server is running at http://localhost:${PORT}`); });