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