ce76980fe5
- 新增 JWT httpOnly cookie 认证链路 (jose),登录/注册签发 token, 所有用户和盲盒 API 改为从 cookie 提取 userId,不再信任客户端传值 - 新增 /api/auth/logout 端点清除认证 cookie - GET /api/user 区分 owner/非 owner,非 owner 不暴露 email - atomicUpdateRoom 新增 per-room 应用层互斥锁,防止 SQLite 下并发 lost update - 修复 getRoomData 中 fire-and-forget delete 改为 await - 37 个静默 catch 块跨 17 个文件添加 console.error 日志 - 新增 REFACTOR_PLAN.md 全景分析文档
16 lines
647 B
TypeScript
16 lines
647 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { apiHandler, ApiError } from "@/lib/api";
|
|
import { refinePlan } from "@/lib/ai";
|
|
import { getAuthUserId } from "@/lib/auth";
|
|
|
|
export const POST = apiHandler(async (req) => {
|
|
await getAuthUserId(req);
|
|
const { instruction, days } = await req.json();
|
|
if (!instruction?.trim()) throw new ApiError("指令不能为空", 400);
|
|
if (!Array.isArray(days) || days.length === 0) throw new ApiError("days 无效", 400);
|
|
|
|
const newDays = await refinePlan(days, instruction);
|
|
if (!newDays) throw new ApiError("AI 调整失败,请重试", 500);
|
|
return NextResponse.json({ days: newDays });
|
|
});
|