add host route
This commit is contained in:
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user