const express = require("express"); const OpenApiValidator = require("express-openapi-validator"); const app = express(); const port = 3000; const cors = require("cors") //// Swagger const swaggerUi = require("swagger-ui-express"); const YAML = require("yaml"); const fs = require("fs"); const file = fs.readFileSync("./open_api.yaml", "utf8"); const swaggerDocument = YAML.parse(file); // Serve the swagger ui app.use("/docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); // use cors middleware app.use(cors()) // Validator app.use(express.json()) app.use( OpenApiValidator.middleware({ apiSpec: './open_api.yaml', validateResponses: true }) ); app.use((err, req, res, next) => { res.status(err.status || 500).json ({ code: err.status, message: err.message, additionalPropl: err.errors, }); }); // Routes app.use(express.json()); app.use(express.urlencoded({ extended: true })) app.use( express.static( __dirname + '/frontend')) const accountsRoute = require("./routes/accounts"); const transactionsRoute = require("./routes/transactions"); const resetRoute = require("./routes/reset") const { sse } = require("./sse") const basepath = "/api/v1"; app.use(`${basepath}/accounts`, accountsRoute); app.use(`${basepath}/transactions`, transactionsRoute); app.use(`${basepath}/`, resetRoute.router); app.get("/live", sse) app.get("/", (req, res) => { res.sendFile( path.join( __dirname, 'client', 'index.html')) }); app.listen(port, () => { console.log(`App listening on port ${port}`); });