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 { param, query } from 'express-validator'
import { validateErrors } from '../common' import { validateErrors } from '../common'
import { allData } from '../process/process' import { allData } from '../process/process'
import { getHostList } from '../db/db'
const router = Router() const router = Router()
//timeout middleware ? //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( router.get(
'/:dataType', '/:dataType',
param('dataType') param('dataType')
+4 -49
View File
@@ -34,70 +34,25 @@ interface RemoveFromKill {
type KillRecord = Omit<KillTable, keyof RemoveFromKill> type KillRecord = Omit<KillTable, keyof RemoveFromKill>
export async function CreateKillRecord(data: KillRecord) { export async function CreateKillRecord(data: KillRecord) {
//TODO : Handle server foreign key crashes
await db await db
.insertInto('kill') .insertInto('kill')
.values({ ...data }) .values({ ...data })
.execute() .execute()
} }
export async function getHostList() {
// export async function FindServer({ name }: { name: string }) { return await db.selectFrom("host").select(['id', 'host.name']).execute()
// 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()
// }
//tokens are stored in raw... maybe we should use something better in the future //tokens are stored in raw... maybe we should use something better in the future
//Using callback for express-basic-auth //Using callback for express-basic-auth
export function CheckServerToken(token: string) { export function CheckServerToken(token: string) {
return db.selectFrom('hoster').select('id') return db.selectFrom('host').select('id')
.where('token', '=', Buffer.from(token, 'base64').toString()) .where('token', '=', Buffer.from(token, 'base64').toString())
.executeTakeFirst() .executeTakeFirst()
.then((result) => { .then((result) => {
return 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>> { export async function dbReady(): Promise<Kysely<Database>> {
await migration await migration
return db return db
+5 -3
View File
@@ -38,13 +38,15 @@ export interface KillTable {
cause_of_death: string cause_of_death: string
distance: number distance: number
} }
/*
interface PlayerTable { interface PlayerTable {
id: number id: number
name: string name: string
'opt-out': boolean 'opt-out': boolean
hide_TOS: boolean hide_TOS: boolean
} }
*/
interface WeaponTable { interface WeaponTable {
id: string id: string
name: string name: string
@@ -64,10 +66,10 @@ interface HosterTable {
} }
interface Database { interface Database {
kill: KillTable kill: KillTable
player: PlayerTable //player: PlayerTable
weapon: WeaponTable weapon: WeaponTable
maps: MapTable maps: MapTable
hoster: HosterTable host: HosterTable
} }
export default Database export default Database