ProxmoxAAS-API/src/main.js

55 lines
1.3 KiB
JavaScript
Raw Normal View History

2023-07-06 05:13:22 +00:00
import express from "express";
import bodyParser from "body-parser";
import cookieParser from "cookie-parser";
import cors from "cors";
import morgan from "morgan";
import api from "./package.js";
import * as pve from "./pve.js";
import * as utils from "./utils.js";
2023-08-03 19:51:09 +00:00
import LocalDB from "./db.js";
2023-07-06 05:13:22 +00:00
2023-08-03 19:31:11 +00:00
import parseArgs from "minimist";
global.argv = parseArgs(process.argv.slice(2), {
default: {
2023-08-05 00:38:57 +00:00
package: "package.json",
2023-08-03 19:31:11 +00:00
localdb: "config/localdb.json"
}
});
2023-08-05 00:38:57 +00:00
global.api = api(global.argv.package);
global.pve = pve;
global.utils = utils;
2023-08-03 19:51:09 +00:00
global.db = new LocalDB(global.argv.localdb);
const app = express();
global.app = app;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
2023-08-03 19:51:09 +00:00
app.use(cors({ origin: global.db.hostname }));
app.use(morgan("combined"));
2023-08-03 19:51:09 +00:00
global.server = app.listen(global.db.listenPort, () => {
2023-08-05 00:38:57 +00:00
console.log(`proxmoxaas-api v${global.api.version} listening on port ${global.db.listenPort}`);
});
2023-08-07 18:48:47 +00:00
global.utils.recursiveImport(app, "/api", "routes");
2023-07-06 05:13:22 +00:00
/**
* GET - get API version
2023-07-06 05:13:22 +00:00
* responses:
* - 200: {version: string}
2023-07-06 05:13:22 +00:00
*/
app.get("/api/version", (req, res) => {
2023-08-05 00:38:57 +00:00
res.status(200).send({ version: global.api.version });
2023-07-06 05:13:22 +00:00
});
/**
* GET - echo request
2023-07-06 05:13:22 +00:00
* responses:
* - 200: {body: request.body, cookies: request.cookies}
2023-07-06 05:13:22 +00:00
*/
app.get("/api/echo", (req, res) => {
res.status(200).send({ body: req.body, cookies: req.cookies });
2023-07-06 05:13:22 +00:00
});