[FEATURE] Server service containerization
This commit is contained in:
parent
22bf905415
commit
12d198456c
9 changed files with 165 additions and 91 deletions
|
@ -1,8 +1,12 @@
|
|||
/*CREATE SEQUENCE servers_id_seq;
|
||||
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,
|
||||
version varchar(63) DEFAULT 'latest',
|
||||
server_type varchar(63) DEFAULT 'VANILLA',
|
||||
memory varchar(63) DEFAULT '512',
|
||||
CONSTRAINT unique_name UNIQUE(name),
|
||||
CONSTRAINT unique_host UNIQUE(host)
|
||||
);
|
||||
ALTER SEQUENCE servers_id_seq OWNED BY servers.id;*/
|
||||
ALTER SEQUENCE servers_id_seq OWNED BY servers.id;
|
34
lib/database/queries/server-queries.js
Normal file
34
lib/database/queries/server-queries.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
import pg from "../postgres.js";
|
||||
import { insertQuery, selectWhereQuery } from "../pg-query.js";
|
||||
import ExpressClientError from "../../util/ExpressClientError.js";
|
||||
const table = "servers";
|
||||
|
||||
const asExpressClientError = (e) => {
|
||||
throw new ExpressClientError({ m: e.message, c: 409 });
|
||||
};
|
||||
|
||||
export async function createServerEntry(serverSpec) {
|
||||
const { name, host, version, serverType: server_type, memory } = serverSpec;
|
||||
const q = insertQuery(table, { name, host, version, server_type, memory });
|
||||
return pg.query(q).catch(asExpressClientError);
|
||||
}
|
||||
|
||||
export async function getServerEntry(serverName) {
|
||||
if (!serverName) asExpressClientError({ message: "Server Name Required!" });
|
||||
const q = selectWhereQuery(table, { name: serverName });
|
||||
try {
|
||||
const serverSpecs = await pg.query(q);
|
||||
if (!serverSpecs.length === 1)
|
||||
throw Error("Multiple servers found with the same name!");
|
||||
const {
|
||||
name,
|
||||
host,
|
||||
version,
|
||||
server_type: serverType,
|
||||
memory,
|
||||
} = serverSpecs[0];
|
||||
return { name, host, version, serverType, memory };
|
||||
} catch (e) {
|
||||
asExpressClientError(e);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue