add host route

This commit is contained in:
2023-04-20 11:36:02 +02:00
parent 01be7d8dd1
commit 96dcf2334b
3 changed files with 18 additions and 52 deletions
+9
View File
@@ -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')
+4 -49
View File
@@ -34,70 +34,25 @@ interface RemoveFromKill {
type KillRecord = Omit<KillTable, keyof RemoveFromKill>
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<Kysely<Database>> {
await migration
return db
+5 -3
View File
@@ -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