import { Application, Router } from "jsr:@oak/oak@14"; import { router_webrtc } from "./webrtc_fake.ts"; const app = new Application(); const router = new Router({ prefix: "/api", }); let offer: any = {}; let answer: any = {}; router.post("/offer", async (ctx) => { const body = await ctx.request.body.json(); if (body) { offer = body; ctx.response.status = 200; ctx.response.body = { message: "Answer stored successfully" }; } else { ctx.response.status = 400; ctx.response.body = { error: "Invalid JSON" }; } }); router.post("/answer", async (ctx) => { const body = await ctx.request.body.json(); if (body) { answer = body; ctx.response.status = 200; ctx.response.body = { message: "Answer stored successfully" }; } else { ctx.response.status = 400; ctx.response.body = { error: "Invalid JSON" }; } }); router.get("/offer", (ctx) => { ctx.response.body = offer; if(Object.keys(answer).length === 0) { ctx.response.status = 204; } else { offer = {}; ctx.response.status = 200; } ctx.response.headers.set("Content-Type", "application/json"); }); router.get("/answer", (ctx) => { ctx.response.body = answer; if(Object.keys(answer).length === 0) { ctx.response.status = 204; } else { answer = {}; ctx.response.status = 200; } ctx.response.headers.set("Content-Type", "application/json"); }); app.use(router_webrtc.routes()); app.use(router_webrtc.allowedMethods()); app.use(router.routes()); app.use(router.allowedMethods()); app.listen({ port: 8080, });