From 96dcf2334b52d4709a38bef196b7c40d00befbc6 Mon Sep 17 00:00:00 2001 From: legonzaur Date: Thu, 20 Apr 2023 11:36:02 +0200 Subject: [PATCH] add host route --- src/client/client.ts | 9 ++++++++ src/db/db.ts | 53 ++++---------------------------------------- src/db/model.ts | 8 ++++--- 3 files changed, 18 insertions(+), 52 deletions(-) diff --git a/src/client/client.ts b/src/client/client.ts index c11b4d1..4e0f291 100644 --- a/src/client/client.ts +++ b/src/client/client.ts @@ -2,6 +2,7 @@ import { Router } from 'express' import { param, query } from 'express-validator' import { validateErrors } from '../common' import { allData } from '../process/process' +import { getHostList } from '../db/db' const router = Router() //timeout middleware ? @@ -20,6 +21,14 @@ function filters(e: any, query: any) { ) } +router.get('/hosts', + async (req, res) => { + const result = (await getHostList()) + const data: { [key: number]: string } = {} + result.forEach(e => data[Number(e.id)] = e.name) + res.status(200).send(data) + }) + router.get( '/:dataType', param('dataType') diff --git a/src/db/db.ts b/src/db/db.ts index 5bee2f5..00c72e7 100644 --- a/src/db/db.ts +++ b/src/db/db.ts @@ -34,70 +34,25 @@ interface RemoveFromKill { type KillRecord = Omit export async function CreateKillRecord(data: KillRecord) { - //TODO : Handle server foreign key crashes await db .insertInto('kill') .values({ ...data }) .execute() } - -// export async function FindServer({ name }: { name: string }) { -// return await db -// .selectFrom('server') -// .select(['server.name', 'server.description']) -// .where('server.name', '=', name) -// .executeTakeFirst() -// } - -// export async function CreateServer({ -// name, -// description -// }: { -// name: string -// description: string -// }) { -// return await db -// .insertInto('server') -// .values({ name, description }) -// .returning(['id', 'token']) -// .executeTakeFirstOrThrow() -// } - +export async function getHostList() { + return await db.selectFrom("host").select(['id', 'host.name']).execute() +} //tokens are stored in raw... maybe we should use something better in the future //Using callback for express-basic-auth export function CheckServerToken(token: string) { - return db.selectFrom('hoster').select('id') + return db.selectFrom('host').select('id') .where('token', '=', Buffer.from(token, 'base64').toString()) .executeTakeFirst() .then((result) => { return result }) } -/* -async function demo() { - const { id } = await db - .insertInto("person") - .values({ first_name: "Jennifer", gender: "female" }) - .returning("id") - .executeTakeFirstOrThrow(); - await db - .insertInto("pet") - .values({ name: "Catto", species: "cat", owner_id: id }) - .execute(); - - const person = await db - .selectFrom("person") - .innerJoin("pet", "pet.owner_id", "person.id") - .select(["first_name", "pet.name as pet_name"]) - .where("person.id", "=", id) - .executeTakeFirst(); - - if (person) { - person.pet_name; - } -} -*/ export async function dbReady(): Promise> { await migration return db diff --git a/src/db/model.ts b/src/db/model.ts index 47a74c0..21e992d 100644 --- a/src/db/model.ts +++ b/src/db/model.ts @@ -38,13 +38,15 @@ export interface KillTable { cause_of_death: string distance: number } - +/* interface PlayerTable { id: number name: string 'opt-out': boolean hide_TOS: boolean } +*/ + interface WeaponTable { id: string name: string @@ -64,10 +66,10 @@ interface HosterTable { } interface Database { kill: KillTable - player: PlayerTable + //player: PlayerTable weapon: WeaponTable maps: MapTable - hoster: HosterTable + host: HosterTable } export default Database