在这段生成的任务端点对客户端开放前,对它进行审查。
为已认证所有者创建任务,接受长度不超过 80 的非空标题,在重试时保持正确,并在持久创建和记录审计信息后返回带 Location 的 201 响应。
JavaScript
async function createTask(request, db, audit) {
const body = await request.json();
const ownerId = body.ownerId;
const owner = (await db.users.list()).find((user) => user.id === ownerId);
if (!owner) return json(404, { error: "owner_not_found" });
const task = {
id: crypto.randomUUID(),
ownerId,
title: String(body.title).trim(),
completed: false,
};
const duplicate = await db.tasks.findByTitle(task.title);
if (duplicate) return json(409, { error: "duplicate" });
await db.tasks.insert(task);
await audit.publish("task.created", task);
return json(200, task);
}
生成代码仅作示例,不代表任何特定模型