import { NotFoundError, SecurePassword, resolver } from "blitz"; import db from "../../../db"; import { authenticateUser } from "./login"; import { ChangePassword } from "../validations"; export default resolver.pipe( resolver.zod(ChangePassword), resolver.authorize(), async ({ currentPassword, newPassword }, ctx) => { const user = await db.user.findFirst({ where: { id: ctx.session.userId! } }); if (!user) throw new NotFoundError(); await authenticateUser(user.email, currentPassword); const hashedPassword = await SecurePassword.hash(newPassword.trim()); await db.user.update({ where: { id: user.id }, data: { hashedPassword }, }); return true; } );