Files
Lazuli/src/routes/api/connections/+server.ts
T

20 lines
936 B
TypeScript
Raw Normal View History

2024-02-18 00:01:54 -05:00
import type { RequestHandler } from '@sveltejs/kit'
import { buildConnection } from '$lib/server/api-helper'
2024-02-18 00:01:54 -05:00
export const GET: RequestHandler = async ({ url }) => {
const ids = url.searchParams.get('id')?.replace(/\s/g, '').split(',')
if (!ids) return new Response('Missing id query parameter', { status: 400 })
2024-02-18 00:01:54 -05:00
const connections = (await Promise.all(ids.map((id) => buildConnection(id).catch(() => null)))).filter((result): result is Connection => result !== null)
2024-02-18 00:01:54 -05:00
const getConnectionInfo = (connection: Connection) =>
connection.getConnectionInfo().catch((reason) => {
console.error(`Failed to fetch connection info: ${reason}`)
return null
})
const connectionInfo = (await Promise.all(connections.map(getConnectionInfo))).filter((connectionInfo): connectionInfo is ConnectionInfo => connectionInfo !== null)
return Response.json({ connections: connectionInfo })
2024-02-18 00:01:54 -05:00
}