From e94aca7c96f426adf2cbd29578eddb0f91c64a8a Mon Sep 17 00:00:00 2001 From: Dunemask Date: Fri, 22 Dec 2023 11:59:08 -0700 Subject: [PATCH] [REV] Adjusted servers table --- lib/controllers/file-controller.js | 10 ++++---- lib/controllers/lifecycle-controller.js | 24 +++++++------------ .../migrations/1_create_servers_table.sql | 8 +++++-- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/lib/controllers/file-controller.js b/lib/controllers/file-controller.js index 36aa0b0..7af1a4c 100644 --- a/lib/controllers/file-controller.js +++ b/lib/controllers/file-controller.js @@ -10,7 +10,7 @@ import { sendError } from "../util/ExpressClientError.js"; export async function listFiles(req, res) { const serverSpec = req.body; if (!serverSpec) return res.sendStatus(400); - if (!serverSpec.name) return res.status(400).send("Server name required!"); + if (!serverSpec.host) return res.status(400).send("Server name required!"); listServerFiles(serverSpec) .then((f) => { const fileData = f.map((fi, i) => ({ @@ -29,7 +29,7 @@ export async function listFiles(req, res) { export async function createFolder(req, res) { const serverSpec = req.body; if (!serverSpec) return res.sendStatus(400); - if (!serverSpec.name) return res.status(400).send("Server name required!"); + if (!serverSpec.host) return res.status(400).send("Server name required!"); if (!serverSpec.path) return res.status(400).send("Path required!"); createServerFolder(serverSpec) .then(() => res.sendStatus(200)) @@ -39,7 +39,7 @@ export async function createFolder(req, res) { export async function deleteItem(req, res) { const serverSpec = req.body; if (!serverSpec) return res.sendStatus(400); - if (!serverSpec.name) return res.status(400).send("Server name required!"); + if (!serverSpec.host) return res.status(400).send("Server name required!"); if (!serverSpec.path) return res.status(400).send("Path required!"); if (serverSpec.isDir === undefined || serverSpec.isDir === null) return res.status(400).send("IsDIr required!"); @@ -50,7 +50,7 @@ export async function deleteItem(req, res) { export async function uploadItem(req, res) { const serverSpec = req.body; - if (!serverSpec.name) return res.status(400).send("Server name required!"); + if (!serverSpec.host) return res.status(400).send("Server name required!"); if (!serverSpec.path) return res.status(400).send("Path required!"); uploadServerItem(serverSpec, req.file) .then(() => res.sendStatus(200)) @@ -59,7 +59,7 @@ export async function uploadItem(req, res) { export async function getItem(req, res) { const serverSpec = req.body; - if (!serverSpec.name) return res.status(400).send("Server name required!"); + if (!serverSpec.host) return res.status(400).send("Server name required!"); if (!serverSpec.path) return res.status(400).send("Path required!"); getServerItem(serverSpec, res) .then(({ ds, ftpTransfer }) => { diff --git a/lib/controllers/lifecycle-controller.js b/lib/controllers/lifecycle-controller.js index 5b0105e..c0d0316 100644 --- a/lib/controllers/lifecycle-controller.js +++ b/lib/controllers/lifecycle-controller.js @@ -6,32 +6,24 @@ import { getServerEntry, } from "../database/queries/server-queries.js"; import { sendError } from "../util/ExpressClientError.js"; -import { - startServerContainer, - stopServerContainer, -} from "../k8s/server-control.js"; import { toggleServer } from "../k8s/k8s-server-control.js"; function payloadFilter(req, res) { const serverSpec = req.body; if (!serverSpec) return res.sendStatus(400); - const { name, host, version, serverType, difficulty, gamemode, memory } = + const { name, host, version, serverType, memory } = serverSpec; if (!name) return res.status(400).send("Server name is required!"); if (!host) return res.status(400).send("Server host is required!"); if (!version) return res.status(400).send("Server version is required!"); - if (!difficulty) - return res.status(400).send("Server difficulty is required!"); if (!serverType) return res.status(400).send("Server type is required!"); - if (!gamemode) return res.status(400).send("Server Gamemode is required!"); if (!memory) return res.status(400).send("Memory is required!"); - req.body.name = req.body.name.toLowerCase(); return "filtered"; } -function checkServerName(serverSpec) { +function checkServerHost(serverSpec) { if (!serverSpec) throw new ExpressClientError({ c: 400 }); - if (!serverSpec.name) + if (!serverSpec.host) throw new ExpressClientError({ c: 400, m: "Server name required!" }); } @@ -39,7 +31,7 @@ export async function createServer(req, res) { if (payloadFilter(req, res) !== "filtered") return; const serverSpec = req.body; try { - const serverSpecs = await getServerEntry(serverSpec.name); + const serverSpecs = await getServerEntry(serverSpec.id); if (serverSpecs.length !== 0) throw Error("Server already exists in DB!"); await createServerResources(serverSpec); await createServerEntry(serverSpec); @@ -53,11 +45,11 @@ export async function deleteServer(req, res) { // Ensure spec is safe const serverSpec = req.body; try { - checkServerName(serverSpec); + checkServerHost(serverSpec); } catch (e) { return sendError(res)(e); } - const deleteEntry = deleteServerEntry(serverSpec.name); + const deleteEntry = deleteServerEntry(serverSpec.id); const deleteResources = deleteServerResources(serverSpec); Promise.all([deleteEntry, deleteResources]) .then(() => res.sendStatus(200)) @@ -68,7 +60,7 @@ export async function startServer(req, res) { // Ensure spec is safe const serverSpec = req.body; try { - checkServerName(serverSpec); + checkServerHost(serverSpec); } catch (e) { return sendError(res)(e); } @@ -82,7 +74,7 @@ export async function stopServer(req, res) { // Ensure spec is safe const serverSpec = req.body; try { - checkServerName(serverSpec); + checkServerHost(serverSpec); } catch (e) { return sendError(res)(e); } diff --git a/lib/database/migrations/1_create_servers_table.sql b/lib/database/migrations/1_create_servers_table.sql index 5306630..efc458b 100644 --- a/lib/database/migrations/1_create_servers_table.sql +++ b/lib/database/migrations/1_create_servers_table.sql @@ -1,12 +1,16 @@ CREATE SEQUENCE servers_id_seq; CREATE TABLE servers ( id bigint NOT NULL DEFAULT nextval('servers_id_seq') PRIMARY KEY, - name varchar(255) DEFAULT NULL, host varchar(255) DEFAULT NULL, + name varchar(255) DEFAULT NULL, version varchar(63) DEFAULT 'latest', server_type varchar(63) DEFAULT 'VANILLA', + cpu varchar(63) DEFAULT '500', memory varchar(63) DEFAULT '512', - CONSTRAINT unique_name UNIQUE(name), + backup_host varchar(255) DEFAULT NULL, + backup_bucket_path varchar(255) DEFAULT NULL, + backup_user varchar(255) DEFAULT NULL, + backup_pass varchar(255) DEFAULT NULL, CONSTRAINT unique_host UNIQUE(host) ); ALTER SEQUENCE servers_id_seq OWNED BY servers.id; \ No newline at end of file