▍ humdrum codex / soft
595 B raw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import { withErrors, ok, parseJson } from "@/lib/api";
import { requireUser } from "@/lib/auth";
import { CreateTodo } from "@/lib/schemas/todo";
import { listTodos, createTodo } from "@/lib/store";

// GET /api/todos
export const GET = withErrors(async (req) => {
  await requireUser(req);
  return ok({ todos: listTodos() });
});

// POST /api/todos
export const POST = withErrors(async (req) => {
  await requireUser(req);
  const input = await parseJson(req, CreateTodo);
  const todo = createTodo({ title: input.title, due: input.due ?? null });
  return ok({ todo }, { status: 201 });
});