fix x-file-size-header
This commit is contained in:
+18
-11
@@ -43,7 +43,11 @@ router.get('/hosts', (_req, res) => {
|
|||||||
const result = await getHostList()
|
const result = await getHostList()
|
||||||
const data: Record<number, string> = {}
|
const data: Record<number, string> = {}
|
||||||
result.forEach((e) => (data[Number(e.id)] = e.name))
|
result.forEach((e) => (data[Number(e.id)] = e.name))
|
||||||
res.status(200).send(data)
|
|
||||||
|
const dataString = JSON.stringify(data)
|
||||||
|
const buffer = Buffer.from(dataString)
|
||||||
|
const size = buffer.length
|
||||||
|
res.status(200).setHeader('X-File-Size', size).setHeader('Content-Type', 'application/json').send(buffer)
|
||||||
})()
|
})()
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -67,12 +71,12 @@ function processQueryArgs (data: ReturnType<typeof db.selectFrom<'kill_view'>>,
|
|||||||
router.get('/players',
|
router.get('/players',
|
||||||
(req, res) => {
|
(req, res) => {
|
||||||
void (async () => {
|
void (async () => {
|
||||||
let data = db.selectFrom('kill_view')
|
let result = db.selectFrom('kill_view')
|
||||||
if (req.query) {
|
if (req.query) {
|
||||||
data = processQueryArgs(data, req.query as unknown as string | string[])
|
result = processQueryArgs(result, req.query as unknown as string | string[])
|
||||||
}
|
}
|
||||||
const selection = data.select([sum<number>('kills').as('kills'), sum<number>('deaths').as('deaths'), sum<number>('deaths_with_weapon').as('deaths_while_equipped'), 'attacker_id', sql<string>`last(attacker_name)`.as('username'), sum<number>('total_distance').as('total_distance'), max('max_distance').as('max_distance')]).groupBy('attacker_id')
|
const selection = result.select([sum<number>('kills').as('kills'), sum<number>('deaths').as('deaths'), sum<number>('deaths_with_weapon').as('deaths_while_equipped'), 'attacker_id', sql<string>`last(attacker_name)`.as('username'), sum<number>('total_distance').as('total_distance'), max('max_distance').as('max_distance')]).groupBy('attacker_id')
|
||||||
const test = (await selection.execute()).reduce<Record<string, KillRecord>>((acc, curr) => {
|
const data = (await selection.execute()).reduce<Record<string, KillRecord>>((acc, curr) => {
|
||||||
acc[curr.attacker_id] = {
|
acc[curr.attacker_id] = {
|
||||||
kills: Number(curr.kills),
|
kills: Number(curr.kills),
|
||||||
deaths: Number(curr.deaths),
|
deaths: Number(curr.deaths),
|
||||||
@@ -83,7 +87,10 @@ router.get('/players',
|
|||||||
}
|
}
|
||||||
return acc
|
return acc
|
||||||
}, {})
|
}, {})
|
||||||
res.send(test)
|
const dataString = JSON.stringify(data)
|
||||||
|
const buffer = Buffer.from(dataString)
|
||||||
|
const size = buffer.length
|
||||||
|
res.status(200).setHeader('X-File-Size', size).setHeader('Content-Type', 'application/json').send(buffer)
|
||||||
})()
|
})()
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -94,14 +101,14 @@ router.get('/:dataType',
|
|||||||
validateErrors,
|
validateErrors,
|
||||||
(req, res) => {
|
(req, res) => {
|
||||||
void (async () => {
|
void (async () => {
|
||||||
let data = db.selectFrom('kill_view')
|
let result = db.selectFrom('kill_view')
|
||||||
if (req.query) {
|
if (req.query) {
|
||||||
data = processQueryArgs(data, req.query as unknown as string | string[])
|
result = processQueryArgs(result, req.query as unknown as string | string[])
|
||||||
}
|
}
|
||||||
const dataType = req.params.dataType as keyof typeof path
|
const dataType = req.params.dataType as keyof typeof path
|
||||||
|
|
||||||
const selection = data.select([sum<number>('kills').as('kills'), sum<number>('deaths').as('deaths'), sum<number>('deaths_with_weapon').as('deaths_while_equipped'), path[dataType], sum<number>('total_distance').as('total_distance'), max('max_distance').as('max_distance')]).groupBy(path[dataType])
|
const selection = result.select([sum<number>('kills').as('kills'), sum<number>('deaths').as('deaths'), sum<number>('deaths_with_weapon').as('deaths_while_equipped'), path[dataType], sum<number>('total_distance').as('total_distance'), max('max_distance').as('max_distance')]).groupBy(path[dataType])
|
||||||
const result = (await selection.execute()).reduce<Record<string, KillRecord>>((acc, curr) => {
|
const data = (await selection.execute()).reduce<Record<string, KillRecord>>((acc, curr) => {
|
||||||
acc[curr[path[dataType]]] = {
|
acc[curr[path[dataType]]] = {
|
||||||
kills: Number(curr.kills),
|
kills: Number(curr.kills),
|
||||||
deaths: Number(curr.deaths),
|
deaths: Number(curr.deaths),
|
||||||
@@ -111,7 +118,7 @@ router.get('/:dataType',
|
|||||||
}
|
}
|
||||||
return acc
|
return acc
|
||||||
}, {})
|
}, {})
|
||||||
const dataString = JSON.stringify(result)
|
const dataString = JSON.stringify(data)
|
||||||
const buffer = Buffer.from(dataString)
|
const buffer = Buffer.from(dataString)
|
||||||
const size = buffer.length
|
const size = buffer.length
|
||||||
res.status(200).setHeader('X-File-Size', size).setHeader('Content-Type', 'application/json').send(buffer)
|
res.status(200).setHeader('X-File-Size', size).setHeader('Content-Type', 'application/json').send(buffer)
|
||||||
|
|||||||
Reference in New Issue
Block a user