import dbConnect from 'configs/dbConnect' import withSession from 'hocs/withSession' import NoteList from 'apps/Notes/models/NoteList' import Note from 'apps/Notes/models/Note' export default withSession(async (req, res) => { const conn = await dbConnect() switch (req.method) { case 'GET': try { const user = req.session.get('user') if (!user || !user.isVerified) { throw new Error('Something went wrong') } const { notes } = await NoteList.getList(user.noteList) res.status(200).json(notes) } catch (error) { res.status(400).json([]) } break case 'POST': try { const session = await conn.startSession() const user = req.session.get('user') const { title, content } = req.body if (!user || !user?.isVerified || !content) { throw new Error('Something went wrong') } await session.withTransaction(async () => { const note = await Note.create({ content }) const { notes } = await NoteList.addNote(user.noteList, note._id, title) session.endSession() res.status(200).json(notes) }) } catch (error) { res.status(400).json([]) } break default: res.status(400).send() break } })