An error occurred while loading the file. Please try again.
index.ts 1.37 KiB
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}`);
});