import { HandlerContext } from "$fresh/server.ts"; import { catcher_async, json_response } from "utils"; import { new_conversation } from "db"; export async function handler( req: Request, _ctx: HandlerContext ): Promise { if (req.method == "PUT") { return await put(req); } else { return new Response(JSON.stringify({ err: "expected a PUT" })); } } async function put(req: Request): Promise { const json = await catcher_async(() => req.json()); if (json.isNone()) { return json_response({ err: "expected JSON :(" }, { status: 400 }); } const json_ = json.unwrap(); if (!json_.name || !json_.description) { return json_response( { err: "i need a `name` and a `description`" }, { status: 400 } ); } const new_id = await new_conversation(json_.name, json_.description); return json_response(new_id.unwrapOr("fail")); } //TODO: validate that they give a valid message object //TODO: put under some id //TODO: e.g. {under: string, message: Message}