Files
temp-history-api/index.js
2026-04-19 23:43:31 +07:00

43 lines
1.3 KiB
JavaScript

const express = require("express");
const cors = require("cors");
const swaggerUi = require("swagger-ui-express");
const tileRoutes = require("./routes/tiles");
const rasterTileRoutes = require("./routes/rasterTiles");
const geoRoutes = require("./routes/geometries");
const entityRoutes = require("./routes/entities");
const sectionRoutes = require("./routes/sections");
const { openApiSpec } = require("./swagger");
const { envelopeResponses } = require("./utils/apiEnvelope");
const app = express();
app.use(cors());
app.use(express.json());
// serve MBTiles and geometry CRUD
app.use("/tiles", envelopeResponses, tileRoutes);
app.use("/raster-tiles", envelopeResponses, rasterTileRoutes);
app.use("/geometries", envelopeResponses, geoRoutes);
app.use("/entities", envelopeResponses, entityRoutes);
app.use("/sections", envelopeResponses, sectionRoutes);
app.use("/submissions", envelopeResponses, (req, res, next) => {
req.url = `/submissions${req.url}`;
sectionRoutes(req, res, next);
});
app.use("/docs", swaggerUi.serve, swaggerUi.setup(openApiSpec, {
explorer: true,
}));
app.get("/docs.json", (req, res) => {
res.json(openApiSpec);
});
app.get("/", (req, res) => {
res.send("GIS server running");
});
app.listen(3000, () => {
console.log("🚀 http://localhost:3000");
console.log("📘 Swagger UI: http://localhost:3000/docs");
});