diff options
Diffstat (limited to 'pages/api/notes')
-rw-r--r-- | pages/api/notes/[id].js | 29 | ||||
-rw-r--r-- | pages/api/notes/index.js | 16 |
2 files changed, 27 insertions, 18 deletions
diff --git a/pages/api/notes/[id].js b/pages/api/notes/[id].js index 12f0ba4..a2cd680 100644 --- a/pages/api/notes/[id].js +++ b/pages/api/notes/[id].js @@ -1,11 +1,11 @@ import dbConnect from 'configs/dbConnect' import withSession from 'hocs/withSession' -import NoteList from 'models/NoteList' -import Note from 'models/Note' +import NoteList from 'apps/Notes/models/NoteList' +import Note from 'apps/Notes/models/Note' export default withSession(async (req, res) => { + const conn = await dbConnect() const { id: _id } = req.query - await dbConnect() switch (req.method) { case 'GET': @@ -24,12 +24,12 @@ export default withSession(async (req, res) => { res.status(200).json(note) } catch (error) { - console.log(error) res.status(400).json({ error: true }) } break case 'DELETE': try { + const session = await conn.startSession() const user = req.session.get('user') if (!user || !user?.isVerified || !_id) { @@ -39,17 +39,20 @@ export default withSession(async (req, res) => { const noteId = await NoteList.getNoteId(user.noteList, _id) if (!noteId) throw new Error('Something went wrong') - await Note.findByIdAndDelete(noteId) - const { notes } = await NoteList.removeNote(user.noteList, _id) + await session.withTransaction(async () => { + await Note.findByIdAndDelete(noteId) + const { notes } = await NoteList.removeNote(user.noteList, _id) - res.status(200).json(notes) + session.endSession() + res.status(200).json(notes) + }) } catch (error) { - console.log(error) res.status(400).json([]) } break case 'PUT': try { + const session = await conn.startSession() const user = req.session.get('user') const { title, noteId, content } = req.body @@ -57,12 +60,14 @@ export default withSession(async (req, res) => { throw new Error('Something went wrong') } - await Note.updateNote(noteId, content) - const { notes } = await NoteList.updateList(user.noteList, noteId, title) + await session.withTransaction(async () => { + await Note.updateNote(noteId, content) + const { notes } = await NoteList.updateList(user.noteList, noteId, title) - res.status(200).json(notes) + session.endSession() + res.status(200).json(notes) + }) } catch (error) { - console.log(error) res.status(400).json([]) } break diff --git a/pages/api/notes/index.js b/pages/api/notes/index.js index 16cb88c..86369ed 100644 --- a/pages/api/notes/index.js +++ b/pages/api/notes/index.js @@ -1,10 +1,10 @@ import dbConnect from 'configs/dbConnect' import withSession from 'hocs/withSession' -import NoteList from 'models/NoteList' -import Note from 'models/Note' +import NoteList from 'apps/Notes/models/NoteList' +import Note from 'apps/Notes/models/Note' export default withSession(async (req, res) => { - await dbConnect() + const conn = await dbConnect() switch (req.method) { case 'GET': @@ -24,6 +24,7 @@ export default withSession(async (req, res) => { break case 'POST': try { + const session = await conn.startSession() const user = req.session.get('user') const { title, content } = req.body @@ -31,10 +32,13 @@ export default withSession(async (req, res) => { throw new Error('Something went wrong') } - const note = await Note.create({ content }) - const { notes } = await NoteList.addNote(user.noteList, note._id, title) + await session.withTransaction(async () => { + const note = await Note.create({ content }) + const { notes } = await NoteList.addNote(user.noteList, note._id, title) - res.status(200).json(notes) + session.endSession() + res.status(200).json(notes) + }) } catch (error) { res.status(400).json([]) } |