1. Создаете 2 файла, например user.model.js и document.model.js 2. Описываете через new mongoose.Schema какие поля у вас есть у юзера и документа, в частности, у документа должно быть поле status у которого enum с описанными вами статусами, конвертируете схему в mongoose.model и экспортируете из файла. 3. Создаете сервисы, которые будут проверять и выставлять статусы 4. Когда пользователь отправляет документ, вы в сервисе пишете примерно такую логику: const recipient = await userModel.findOne({login: recipientLogin}) const newDocument = await documentModel.create({status: 'SENT', from: userId, to: recipient._id}) 5. Когда получатель заходит на страницу с документами, то фронт отправляет запрос на обновление статуса. В этом сервисе вы пишите const recievedDocument = documentModel.updateOne({_id: documentId}, {$set: {status: 'RECIEVED'}}, {new: true}) 6. Когда пользователь принимает документ, вы пишете в третьем сервисе примерно такое const acceptedDocument = documentModel.updateOne({_id: documentId}, {$set: {status: 'ACCEPT'}}, {new: true})
Вопрос а если другой пользователь заходит и идёт запрос и меняется статус на RECEIVED и он не принимает документ просто выходит из кабинета и у меня тоже статус поменяется же вид так ?
как сделаешь так и будет
На каждую отправку документа вы создаетн запись в базе данных Для другого пользователя будет другая запись Если вы имеете в виду что на одну страницу с документами будут заходить разные люди, то проверяйте по токену например айдишник и если он есть в to то толькл тогда обновьяете статус
Обсуждают сегодня