mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-08-06 09:16:26 +08:00
Unify bridge auth header and add live telemetry panel
This commit is contained in:
33
server/api/bridge/live.get.ts
Normal file
33
server/api/bridge/live.get.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { createError } from 'h3'
|
||||
import { BridgeToken } from '../../models/BridgeToken'
|
||||
import { getBridgeTokenFromHeader } from '../../utils/bridge'
|
||||
import { flightlabTelemetryStore } from '../../utils/flightlabTelemetry'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const token = getBridgeTokenFromHeader(event)
|
||||
if (!token) {
|
||||
throw createError({ statusCode: 401, statusMessage: 'x-bridge-token header fehlt oder ist ungültig.' })
|
||||
}
|
||||
|
||||
const bridgeDocument = await BridgeToken.findOne({ token }).select('user')
|
||||
const userId = bridgeDocument?.user?.toString() ?? null
|
||||
|
||||
if (!userId) {
|
||||
return {
|
||||
connected: false,
|
||||
lastTelemetryAt: null,
|
||||
telemetry: null,
|
||||
}
|
||||
}
|
||||
|
||||
const telemetry = flightlabTelemetryStore.get(userId)
|
||||
const timestamp = telemetry && typeof telemetry.timestamp === 'number'
|
||||
? new Date(telemetry.timestamp).toISOString()
|
||||
: null
|
||||
|
||||
return {
|
||||
connected: true,
|
||||
lastTelemetryAt: timestamp,
|
||||
telemetry,
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user