feat: establish NekoNest Cloud control and relay
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import {
|
||||
authenticateRelayNode,
|
||||
consumePhoneHandoffForRelay,
|
||||
} from "@/db/relay-control-plane";
|
||||
import { apiError, readJsonMutation } from "../../../respond";
|
||||
|
||||
export async function POST(request: Request) {
|
||||
try {
|
||||
const principal = await authenticateRelayNode(request);
|
||||
const payload = await readJsonMutation<{
|
||||
ticket?: string;
|
||||
pwa_origin?: string;
|
||||
name?: string;
|
||||
phone_ed25519_public?: string;
|
||||
phone_x25519_public?: string;
|
||||
identity_fingerprint?: string;
|
||||
}>(request);
|
||||
return Response.json(await consumePhoneHandoffForRelay({
|
||||
principal,
|
||||
ticket: payload.ticket ?? "",
|
||||
pwaOrigin: payload.pwa_origin ?? "",
|
||||
name: payload.name ?? "",
|
||||
phoneEd25519Public: payload.phone_ed25519_public ?? "",
|
||||
phoneX25519Public: payload.phone_x25519_public ?? "",
|
||||
identityFingerprint: payload.identity_fingerprint ?? "",
|
||||
}), { headers: { "cache-control": "no-store" } });
|
||||
} catch (error) {
|
||||
return apiError(error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user