import { NextApiResponse } from 'next'; import { ProfileParams, UpdatePasswordParams, } from '../../src/model/components/profile'; import { ApiMethods, ApiRoutes, NextRequestWithBody, } from '../../src/model/api'; import { CustomResponse } from '../../src/model/common'; import authenticateRequest from '../../src/utils/api/authenticateRequest'; const updateProfile = async ( req: NextRequestWithBody, res: NextApiResponse>, ): Promise => { const { _id, email, newPassword, password } = req.body; if (!_id || !email || !newPassword || !password) { return res.status(200).json({ ok: false, error: 'MISSING_PARAMS' }); } const response = await authenticateRequest< { jwt: string }, UpdatePasswordParams >(ApiMethods.Post, ApiRoutes.UpdatePassword, { email, password, newPassword, }); const { ok, data, error } = response; if (!ok) { return res.status(200).json({ ok: false, error }); } const oneYear = new Date(); oneYear.setFullYear(oneYear.getFullYear() + 1); res.setHeader('Set-Cookie', `dia_token=${data.jwt}; Path=/; Expires=Session`); return res.status(200).json({ ok: true, data: data.jwt }); }; export default updateProfile;