import axios from 'axios'; import { out } from '@a2r/telemetry'; import { NextApiRequest, NextApiResponse } from 'next'; import { ApiRoutes } from '../../src/model/api'; import { CustomResponse } from '../../src/model/common'; import { LoginResponse, User } from '../../src/model/user'; import serverSettings from '../../src/settings/server'; import handleError from '../../src/utils/api/handleError'; const login = async ( req: NextApiRequest, res: NextApiResponse>, ): Promise => { const { email, password } = req.body; if (!email || !password) { return res.status(200).json({ ok: false }); } const { apiUrl } = serverSettings(); try { const result = await axios.post( `${apiUrl}${ApiRoutes.Login}`, { identifier: email, password, }, ); const { data: { user, jwt }, } = result; const oneYear = new Date(); oneYear.setFullYear(oneYear.getFullYear() + 1); res.setHeader('Set-Cookie', `dia_token=${jwt}; Path=/; Expires=Session`); return res.status(200).json({ ok: true, data: user, }); } catch (err) { const parsedError = handleError(err); out.error(`Error in login: ${parsedError}`); return res.status(200).json({ ok: false, error: parsedError }); } }; export default login;