Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 959b96b

Browse files
separate db operations
1 parent 16fe750 commit 959b96b

File tree

5 files changed

+136
-114
lines changed

5 files changed

+136
-114
lines changed

‎jsdoc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"server/routes",
77
"server/models",
88
"server/middleware",
9+
"server/database",
910
"server/socket",
1011
"client",
1112
"client/src",

‎server/database/mongoOperations.js

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
/** @file mongoOperations.js */
2+
const User = require('../models/User')
3+
const Note = require('../models/Note')
4+
const Media = require('../models/Media')
5+
6+
/**поиск пользователя */
7+
module.exports.findUserByEmail = async function (email) {
8+
const user = await User.findOne({ email })
9+
return user
10+
}
11+
12+
/**создание нового пользователя */
13+
module.exports.addUser = async function (email, hashedPassword) {
14+
const user = new User({ email, password: hashedPassword })
15+
await user.save()
16+
return user
17+
}
18+
19+
///////////////////////////////////////////////////////////
20+
21+
/**Нахождение пользовательских заметок в бд */
22+
module.exports.getNotes = async function (userId) {
23+
const notes = await Note.find({ owner: userId })
24+
return notes
25+
}
26+
27+
/**Добавление или редактирование заметки в бд */
28+
module.exports.postNote = async function (noteToSave, userId) {
29+
30+
noteToSave.owner = userId
31+
32+
/**проверка существования заметки */
33+
const existing = await Note.findOne({ id: noteToSave.id })
34+
35+
if (existing) {
36+
/**Выполнится если такая заметка уже есть */
37+
existing.overwrite(noteToSave)
38+
existing.save()
39+
} else {
40+
/**Выполнится если нет такой заметки */
41+
const note = new Note(noteToSave)
42+
await note.save()
43+
}
44+
45+
}
46+
47+
/**Удаление заметки в бд */
48+
module.exports.deleteNote = async function (noteToSave, userId) {
49+
noteToSave.owner = userId
50+
51+
const existing = await Note.findOne({ id: noteToSave.id })
52+
53+
if (existing) {
54+
const media = existing.media
55+
if (Array.isArray(media)) media.forEach(mediaId => deleteMedia({ id: mediaId }, userId))
56+
await existing.remove()
57+
}
58+
}
59+
60+
///////////////////////////////////////////////////////////
61+
62+
/**Нахождение пользовательских media в бд */
63+
module.exports.getMedia = async function (userId) {
64+
const media = await Media.find({ owner: userId })
65+
return media
66+
}
67+
68+
/**Добавление или редактирование media в бд */
69+
module.exports.postMedia = async function (mediaToSave, userId) {
70+
mediaToSave.owner = userId
71+
72+
/**проверка существования media */
73+
const existing = await Media.findOne({ id: mediaToSave.id })
74+
75+
if (existing) {
76+
/**Выполнится если такая media уже есть */
77+
existing.overwrite(mediaToSave)
78+
await existing.save()
79+
} else {
80+
/**Выполнится если нет такой media */
81+
const media = new Media(mediaToSave)
82+
await media.save()
83+
}
84+
}
85+
86+
/**Удаление media связанных с заметкой в бд */
87+
module.exports.deleteMedia = async function (mediaToDelete, userId) {
88+
mediaToDelete.owner = userId
89+
90+
/**проверка существования media */
91+
const existing = await Media.findOne({ id: mediaToDelete.id })
92+
93+
if (existing) {
94+
await existing.remove()
95+
}
96+
}
97+
98+
/**Проверка и удаление старого media в бд */
99+
module.exports.deleteUnactualMedia = async function (mediaToDelete) {
100+
try {
101+
const note = mediaToDelete.note ? await Note.findOne({ id: mediaToDelete.note }) : null
102+
if (!note) {
103+
/**проверка существования media */
104+
const existing = await Media.findOne({ id: mediaToDelete.id })
105+
if (existing) {
106+
existing.remove()
107+
}
108+
}
109+
} catch { }
110+
}

‎server/routes/auth.routes.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const bcrypt = require('bcryptjs')
66
require('dotenv').config()
77
const jwt = require('jsonwebtoken')
88
const { check, validationResult } = require('express-validator')
9-
const User = require('../models/User')
9+
const db = require('../database/mongoOperations')
1010
const router = Router()
1111

1212
/**
@@ -35,22 +35,22 @@ router.post(
3535
const { email, password } = req.body
3636

3737
/**Проверка существования пользователя */
38-
const candidate = await User.findOne({email})
38+
const candidate = await db.findUserByEmail(email)
3939
if (candidate) {
4040
return res.status(400).json({ message: 'Такой пользователь уже существует' })
4141
}
4242

4343
/**Хеширование пароля и сохранение пользователя */
4444
const hashedPassword = await bcrypt.hash(password, 12)
45-
const user = new User({ email, password: hashedPassword })
46-
await user.save()
45+
const user = await db.addUser(email, hashedPassword)
4746

48-
res.status(201).json({ message: 'Пользователь создан' })
47+
res.status(201).json({ message: `Пользователь ${user.email}создан` })
4948

5049
} catch (e) {
5150
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })
5251
}
53-
})
52+
}
53+
)
5454

5555
/**
5656
* Вход
@@ -77,7 +77,7 @@ router.post(
7777
const { email, password } = req.body
7878

7979
/**Поиск пользователя в бд */
80-
const user = await User.findOne({email})
80+
const user = await db.findUserByEmail(email)
8181
if (!user) {
8282
return res.status(400).json({ message: 'Пользователь не найден' })
8383
}
@@ -102,7 +102,7 @@ router.post(
102102
} catch (e) {
103103
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })
104104
}
105-
})
106-
105+
}
106+
)
107107

108108
module.exports = router

‎server/routes/media.routes.js

Lines changed: 9 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
* @file media.routes.js
33
*/
44
const { Router } = require('express')
5-
6-
const Media = require('../models/Media')
7-
const Note = require('../models/Note')
5+
const db = require('../database/mongoOperations')
86
const auth = require('../middleware/auth.middleware')
97
const storage = require('../middleware/storage.middleware')
108
const router = Router()
@@ -17,32 +15,14 @@ router.post('/set', auth, storage, async (req, res) => {
1715
try {
1816
/**получение данных о media и запись в бд */
1917
const media = tryParce(req.body.media)
20-
postMedia(media)
18+
const userId = req.user.userId
19+
await db.postMedia(media, userId)
2120
res.status(201).json({ media })
2221
} catch (e) {
2322
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })
2423
}
25-
26-
/**Добавление или редактирование media в бд */
27-
async function postMedia(mediaToSave) {
28-
mediaToSave.owner = req.user.userId
29-
30-
/**проверка существования media */
31-
const existing = await Media.findOne({ id: mediaToSave.id })
32-
33-
if (existing) {
34-
/**Выполнится если такая media уже есть */
35-
existing.overwrite(mediaToSave)
36-
existing.save()
37-
} else {
38-
/**Выполнится если нет такой media */
39-
const media = new Media(mediaToSave)
40-
await media.save()
41-
}
42-
}
4324
})
4425

45-
4626
/**
4727
* Добавление и редактирование media
4828
* /api/media/delete
@@ -51,23 +31,12 @@ router.post('/delete', auth, async (req, res) => {
5131
try {
5232
/**получение данных о media и запись в бд */
5333
const media = tryParce(req.body.media)
54-
deleteMedia(media)
34+
const userId = req.user.userId
35+
await db.deleteMedia(media, userId)
5536
res.status(201).json({ media })
5637
} catch (e) {
5738
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })
5839
}
59-
60-
/**Удаление media в бд */
61-
async function deleteMedia(mediaToDelete) {
62-
mediaToDelete.owner = req.user.userId
63-
64-
/**проверка существования media */
65-
const existing = await Media.findOne({ id: mediaToDelete.id })
66-
67-
if (existing) {
68-
existing.remove()
69-
} else res.status(500).json({ message: 'уже удален' })
70-
}
7140
})
7241

7342
/**
@@ -76,29 +45,17 @@ router.post('/delete', auth, async (req, res) => {
7645
*/
7746
router.get('/', auth, async (req, res) => {
7847
try {
48+
const userId = req.user.userId
7949
/**Нахождение пользовательских media в бд */
80-
const media = await Media.find({owner: req.user.userId})
50+
const media = await db.getMedia(userId)
8151
res.status(200).json(media)
52+
/**Проверка и удаление старых медиа */
8253
if (Array.isArray(media)) media.forEach(mediaVal => {
83-
deleteUnactualMedia(mediaVal)
54+
db.deleteUnactualMedia(mediaVal)
8455
})
8556
} catch (e) {
8657
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })
8758
}
88-
89-
/**Удаление старых media в бд */
90-
async function deleteUnactualMedia(mediaToDelete) {
91-
try {
92-
const note = mediaToDelete.note ? await Note.findOne({ id: mediaToDelete.note }) : null
93-
if (!note) {
94-
/**проверка существования media */
95-
const existing = await Media.findOne({ id: mediaToDelete.id })
96-
if (existing) {
97-
existing.remove()
98-
}
99-
}
100-
} catch { }
101-
}
10259
})
10360

10461
function tryParce(str) {

‎server/routes/notes.routes.js

Lines changed: 7 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@
22
* @file notes.routes.js
33
*/
44
const { Router } = require('express')
5-
6-
const Note = require('../models/Note')
7-
const Media = require('../models/Media')
5+
const db = require('../database/mongoOperations')
86
const auth = require('../middleware/auth.middleware')
97
const storage = require('../middleware/storage.middleware')
108
const router = Router()
11-
129
const { checkNote } = require('../validation/NoteCheck')
1310

1411
/**
@@ -19,38 +16,18 @@ router.post('/set', auth, storage, async (req, res) => {
1916
try {
2017
/**получение данных о заметке и запись в бд */
2118
const note = tryParce(req.body.note)
19+
const userId = req.user.userId
2220
if (checkNote(note)) {
23-
postNote(note)
21+
awaitdb.postNote(note,userId)
2422
res.status(201).json({ note })
2523
} else {
2624
res.status(500).json({ message: 'Неверный формат данных заметки' })
2725
}
2826
} catch (e) {
2927
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })
3028
}
31-
32-
/**Добавление или редактирование заметки в бд */
33-
async function postNote(noteToSave) {
34-
35-
noteToSave.owner = req.user.userId
36-
37-
/**проверка существования заметки */
38-
const existing = await Note.findOne({ id: noteToSave.id })
39-
40-
if (existing) {
41-
/**Выполнится если такая заметка уже есть */
42-
existing.overwrite(noteToSave)
43-
existing.save()
44-
} else {
45-
/**Выполнится если нет такой заметки */
46-
const note = new Note(noteToSave)
47-
await note.save()
48-
}
49-
50-
}
5129
})
5230

53-
5431
/**
5532
* Удаление заметки
5633
* /api/notes/delete
@@ -59,40 +36,16 @@ router.post('/delete', auth, async (req, res) => {
5936
try {
6037
/**получение данных о заметке и удаление */
6138
const note = tryParce(req.body.note)
39+
const userId = req.user.userId
6240
if (checkNote(note)) {
63-
deleteNote(note)
41+
awaitdb.deleteNote(note,userId)
6442
res.status(201).json({ note })
6543
} else {
6644
res.status(500).json({ message: 'Неверный формат данных заметки' })
6745
}
6846
} catch (e) {
6947
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })
7048
}
71-
72-
/**Удаление заметки в бд */
73-
async function deleteNote(noteToSave) {
74-
noteToSave.owner = req.user.userId
75-
76-
const existing = await Note.findOne({ id: noteToSave.id })
77-
78-
if (existing) {
79-
const media = existing.media
80-
if (Array.isArray(media)) media.forEach(mediaId => deleteMedia({ id: mediaId }))
81-
existing.remove()
82-
} else res.status(500).json({ message: 'уже удален' })
83-
}
84-
85-
/**Удаление media связанных с заметкой в бд */
86-
async function deleteMedia(mediaToDelete) {
87-
mediaToDelete.owner = req.user.userId
88-
89-
/**проверка существования media */
90-
const existing = await Media.findOne({ id: mediaToDelete.id })
91-
92-
if (existing) {
93-
existing.remove()
94-
}
95-
}
9649
})
9750

9851
/**
@@ -101,8 +54,9 @@ router.post('/delete', auth, async (req, res) => {
10154
*/
10255
router.get('/', auth, async (req, res) => {
10356
try {
57+
const userId = req.user.userId
10458
/**Нахождение пользовательских заметок в бд */
105-
const notes = await Note.find({owner: req.user.userId})
59+
const notes = await db.getNotes(userId)
10660
res.status(200).json(notes)
10761
} catch (e) {
10862
res.status(500).json({ message: 'Что-то пошло не так, попробуйте снова' })

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /