diff options
author | 2022-05-29 17:45:54 +0100 | |
---|---|---|
committer | 2022-05-29 17:45:54 +0100 | |
commit | 308d07785f811ff470d0e90b11680926a823027b (patch) | |
tree | 7afe7859fc29f6a5c34be8b7b486cc317cc82e21 /pages/api | |
parent | 50d781d0bdcac217f2bc037abe087a00019edba5 (diff) | |
download | my_apps-308d07785f811ff470d0e90b11680926a823027b.tar.gz my_apps-308d07785f811ff470d0e90b11680926a823027b.tar.bz2 my_apps-308d07785f811ff470d0e90b11680926a823027b.zip |
add change password option
Diffstat (limited to 'pages/api')
-rw-r--r-- | pages/api/password.js | 35 | ||||
-rw-r--r-- | pages/api/register.js | 4 | ||||
-rw-r--r-- | pages/api/settings.js | 1 | ||||
-rw-r--r-- | pages/api/verify.js | 4 |
4 files changed, 39 insertions, 5 deletions
diff --git a/pages/api/password.js b/pages/api/password.js new file mode 100644 index 0000000..871c9e6 --- /dev/null +++ b/pages/api/password.js @@ -0,0 +1,35 @@ +import dbConnect from 'configs/dbConnect' +import withSession from 'hocs/withSession' +import sendMail from 'configs/sendMail' +import mailData from 'helpers/email' +import User from 'models/User' + +export default withSession(async (req, res) => { + await dbConnect() + + switch (req.method) { + case 'POST': + try { + const data = JSON.parse(req.body) + if (data._id && data.currentPassword && data.newPassword) { + const user = await User.savePassword(data) + req.session.set('user', user) + await req.session.save() + + sendMail({to: user.email, ...mailData('p', user.language)}) + + res.status(200).json(user) + } + } catch (error) { + if (error?.message === 'Wrong password') { + res.status(401).send({ error: 'Wrong password' }) + } else { + res.status(400).send({ error }) + } + } + break + default: + res.status(400).send({ error }) + break + } +}) diff --git a/pages/api/register.js b/pages/api/register.js index 2c866de..56c8ba9 100644 --- a/pages/api/register.js +++ b/pages/api/register.js @@ -1,7 +1,7 @@ import dbConnect from 'configs/dbConnect' import sendMail from 'configs/sendMail' import withSession from 'hocs/withSession' -import { subject, text, html } from 'helpers/email' +import mailData from 'helpers/email' import User from 'models/User' import NoteList from 'apps/Notes/models/NoteList' @@ -20,7 +20,7 @@ export default withSession(async (req, res) => { if (!email) { throw new Error('Something went wrong') } - sendMail(body.email, subject(language), text(language, key), html(language, key)) + sendMail({to: body.email, ...mailData('v', language, key)}) const user = { _id, email, noteList, theme, language, isVerified: false, isLoggedIn: true } req.session.set('user', user) diff --git a/pages/api/settings.js b/pages/api/settings.js index f0d8e06..868f957 100644 --- a/pages/api/settings.js +++ b/pages/api/settings.js @@ -15,7 +15,6 @@ export default withSession(async (req, res) => { res.status(200).json(user) } } catch (error) { - console.log(error) res.status(400).send() } break diff --git a/pages/api/verify.js b/pages/api/verify.js index 89bd4cd..edcc7a9 100644 --- a/pages/api/verify.js +++ b/pages/api/verify.js @@ -2,7 +2,7 @@ import dbConnect from 'configs/dbConnect' import sendMail from 'configs/sendMail' import User from 'models/User' import withSession from 'hocs/withSession' -import { subject, text, html } from 'helpers/email' +import mailData from 'helpers/email' export default withSession(async (req, res) => { await dbConnect() @@ -16,7 +16,7 @@ export default withSession(async (req, res) => { const key = await User.getVerificationKey(email) if (!key) { throw new Error('Something went wrong') } - const response = await sendMail(email, subject(l), text(l, key), html(l, key)) + const response = await sendMail({to: email, ...mailData('v', l, key)}) if (!response?.accepted?.length) { throw new Error('Something went wrong') } res.status(204).send() |