Files
drop/server/api/v1/client/auth/code/ws.get.ts

26 lines
689 B
TypeScript

import type { FetchError } from "ofetch";
import clientHandler from "~/server/internal/clients/handler";
export default defineWebSocketHandler({
async open(peer) {
try {
const h3 = { headers: peer.request?.headers ?? new Headers() };
const code = h3.headers.get("Authorization");
if (!code)
throw createError({
statusCode: 400,
message: "Code required in Authorization header.",
});
await clientHandler.connectCodeListener(code, peer);
} catch (e) {
peer.send(
JSON.stringify({
type: "error",
value: (e as FetchError)?.message,
}),
);
peer.close();
}
},
});