diff options
author | 2021-08-09 21:36:03 +0200 | |
---|---|---|
committer | 2021-08-09 21:37:03 +0200 | |
commit | 464e470441287572cfda8d95484f781236b9db35 (patch) | |
tree | 87177837cb6ee6ee000f0d39fa5ba7ee6bb2943e /pages/api/register.js | |
download | my_apps-464e470441287572cfda8d95484f781236b9db35.tar.gz my_apps-464e470441287572cfda8d95484f781236b9db35.tar.bz2 my_apps-464e470441287572cfda8d95484f781236b9db35.zip |
init commit
Diffstat (limited to 'pages/api/register.js')
-rw-r--r-- | pages/api/register.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/pages/api/register.js b/pages/api/register.js new file mode 100644 index 0000000..f89e347 --- /dev/null +++ b/pages/api/register.js @@ -0,0 +1,35 @@ +import dbConnect from 'lib/dbConnect' +import withSession from 'lib/withSession' +import sendMail from 'lib/sendMail' +import {subject, text, html} from 'helpers/email' +import User from 'models/User' +import NoteList from 'models/NoteList' + +export default withSession(async (req, res) => { + await dbConnect() + + switch (req.method) { + case 'POST': + try { + const noteList = await NoteList.create({}) + + const {_id, email, verificationKey: key} = await User.create({...req.body, noteList}) + if (!email) { throw new Error('Something went wrong') } + + sendMail(req.body.email, subject, text(key), html(key)) + + const user = {_id, email, noteList, isVerified: false, isLoggedIn: true} + req.session.set('user', user) + await req.session.save() + res.status(201).json(user) + } catch (error) { + console.log(error) + res.status(400).json({isLoggedIn: false}) + } + break + default: + res.status(400).json({isLoggedIn: false}) + break + } +}) + |