import { SESSION_COOKIE } from "@autoscholar/auth"; import { changePassword } from "@autoscholar/core"; import { ChangePasswordRequest } from "@autoscholar/schemas"; import { cookies } from "next/headers"; import { handler, json, parseBody } from "@/lib/server/api"; import { db } from "@/lib/server/db"; import { cookieOptions, requireAdmin, sessionToken } from "@/lib/server/session"; export const runtime = "nodejs"; export const POST = handler(async (req) => { const sess = await requireAdmin(req, { mutation: true, allowPendingRotation: true }); const body = await parseBody(req, ChangePasswordRequest, 8 * 1024); const token = (await sessionToken())!; const rotated = await changePassword(db(), token, body.currentPassword, body.newPassword, { ip: sess.ip }); const jar = await cookies(); jar.set(SESSION_COOKIE, rotated.token, cookieOptions()); return json({ ok: true, csrfToken: rotated.csrfToken }); });