add basic regex patterns for endpoint path params

This commit is contained in:
Arthur Lu 2023-07-04 21:11:46 +00:00
parent 6a3bca4948
commit 9da8880163

View File

@ -15,6 +15,10 @@ app.use(cookieParser());
app.use(cors({ origin: hostname })); app.use(cors({ origin: hostname }));
app.use(morgan("combined")); app.use(morgan("combined"));
const nodeRegexP = "[\\w-]+";
const typeRegexP = "qemu|lxc";
const vmidRegexP = "\\d+";
/** /**
* GET - get API version * GET - get API version
* responses: * responses:
@ -188,7 +192,7 @@ app.get("/api/user/config/nodes", async (req, res) => {
* - 500: {error: String} * - 500: {error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/disk/:disk/detach`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/disk/:disk/detach`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -233,7 +237,7 @@ app.post(`/api/:node/:type/:vmid/disk/:disk/detach`, async (req, res) => {
* - 500: {error: String} * - 500: {error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/disk/:disk/attach`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/disk/:disk/attach`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -286,7 +290,7 @@ app.post(`/api/:node/:type/:vmid/disk/:disk/attach`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/disk/:disk/resize`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/disk/:disk/resize`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -337,7 +341,7 @@ app.post(`/api/:node/:type/:vmid/disk/:disk/resize`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/disk/:disk/move`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/disk/:disk/move`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -399,7 +403,7 @@ app.post(`/api/:node/:type/:vmid/disk/:disk/move`, async (req, res) => {
* - 500: {error: String} * - 500: {error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.delete(`/api/:node/:type/:vmid/disk/:disk/delete`, async (req, res) => { app.delete(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/disk/:disk/delete`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -448,7 +452,7 @@ app.delete(`/api/:node/:type/:vmid/disk/:disk/delete`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/disk/:disk/create`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/disk/:disk/create`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -523,7 +527,7 @@ app.post(`/api/:node/:type/:vmid/disk/:disk/create`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/net/:netid/create`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/net/:netid/create`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -589,7 +593,7 @@ app.post(`/api/:node/:type/:vmid/net/:netid/create`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/net/:netid/modify`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/net/:netid/modify`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -643,7 +647,7 @@ app.post(`/api/:node/:type/:vmid/net/:netid/modify`, async (req, res) => {
* - 500: {error: String} * - 500: {error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.delete(`/api/:node/:type/:vmid/net/:netid/delete`, async (req, res) => { app.delete(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/net/:netid/delete`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -682,7 +686,7 @@ app.delete(`/api/:node/:type/:vmid/net/:netid/delete`, async (req, res) => {
* - 401: {auth: false, path: String} * - 401: {auth: false, path: String}
* - 500: {error: String} * - 500: {error: String}
*/ */
app.get(`/api/:node/:type/:vmid/pci/:hostpci`, async (req, res) => { app.get(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/pci/:hostpci`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -722,7 +726,7 @@ app.get(`/api/:node/:type/:vmid/pci/:hostpci`, async (req, res) => {
* - 401: {auth: false, path: String} * - 401: {auth: false, path: String}
* - 500: {error: String} * - 500: {error: String}
*/ */
app.get(`/api/:node/pci`, async (req, res) => { app.get(`/api/:node(${nodeRegexP})/pci`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
}; };
@ -754,7 +758,7 @@ app.get(`/api/:node/pci`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/pci/:hostpci/modify`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/pci/:hostpci/modify`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -835,7 +839,7 @@ app.post(`/api/:node/:type/:vmid/pci/:hostpci/modify`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/pci/create`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/pci/create`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -911,7 +915,7 @@ app.post(`/api/:node/:type/:vmid/pci/create`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.delete(`/api/:node/:type/:vmid/pci/:hostpci/delete`, async (req, res) => { app.delete(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/pci/:hostpci/delete`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -968,7 +972,7 @@ app.delete(`/api/:node/:type/:vmid/pci/:hostpci/delete`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/resources`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/resources`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -1037,7 +1041,7 @@ app.post(`/api/:node/:type/:vmid/resources`, async (req, res) => {
* - 500: {request: Object, error: String} * - 500: {request: Object, error: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.post(`/api/:node/:type/:vmid/create`, async (req, res) => { app.post(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/create`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,
@ -1136,7 +1140,7 @@ app.post(`/api/:node/:type/:vmid/create`, async (req, res) => {
* - 401: {auth: false, path: String} * - 401: {auth: false, path: String}
* - 500: PVE Task Object * - 500: PVE Task Object
*/ */
app.delete(`/api/:node/:type/:vmid/delete`, async (req, res) => { app.delete(`/api/:node(${nodeRegexP})/:type(${typeRegexP})/:vmid(${vmidRegexP})/delete`, async (req, res) => {
let params = { let params = {
node: req.params.node, node: req.params.node,
type: req.params.type, type: req.params.type,