유저 초대(연습, 참고용),(실전프로젝트)

leehowook·2022년 7월 22일
0
post-custom-banner

//유저 초대하기 초안

// router.post('/invite/:roomId/:userId', authMiddleware, async (req, res)=> {
//   try {
//       // const nickname = req.nickname
//       const roomId = Number(req.params.roomId)
//       const userId = Number(req.params.userId)
//       // const { roomId } = req.body
//       const [addUser] = await User.find({ userId })
//       console.log(addUser.nickname)
//       // const [userList] = await User.find({ nickname: {$ne: nickname} })//.sort("nickname")
//       // console.log(userList.nickname)
//                                       //로그인한 나를 제외한 유저목록조회 (이름 순으로 정렬)
//       // if (!userList) { return res.status(400).json({ result: false, msg: "유저 리스트를 불러올 수 없습니다." })}
//       // if (userList === nickname) { return res.status(400).json({ result: false, msg: "본인 포함 오류" })}

//       const inviteUser = await Room.findOneAndUpdate({ roomId },{ $push: { attendName: addUser.nickname }});
//       // console.log(inviteUser.attendName)
//       const inviteRoom = await User.findOneAndUpdate({ userId: userId }, {$push : { attendRoom: roomId }})
//       // console.log(inviteRoom.attendRoom)
//       res.status(200).json({
//           result: true,
//           nickname: addUser.nickname,
//           // AttendName: inviteUser.attendName,
//           // AttendRoom: inviteRoom.attendRoom,
//           msg: "초대 완료"
//       })
//   } catch (error) {
//       console.log(error)
//       res.status(400).send({ errorMessage: error.message })
//   }
  
// })

수정 후
//유저 초대하기

router.post('/invite/:roomId/:userId', authMiddleware, async (req, res)=> {
  try {
      const roomId = Number(req.params.roomId)
      const userId = Number(req.params.userId)

      const [addUser] = await User.find({ userId })
      // console.log(addUser.nickname)
      const { groupNum } = await Room.findOne({ roomId: roomId })
      // console.log(groupNum)
      if (groupNum >=4){
        return res.status(400).json({result: false, msg: "정원 초과입니다."})
      } else {
        await Room.updateOne({ roomId: roomId }, { $inc: { groupNum: 1 } });
        await Room.findOneAndUpdate({ roomId },{ $push: { attendName: addUser.nickname }});
        await User.findOneAndUpdate({ userId }, {$push : { attendRoom: roomId }})
      }
      

      res.status(200).json({
          result: true,
          nickname: addUser.nickname,
          msg: "초대 완료"
      })
  } catch (error) {
      console.log(error)
      res.status(400).send({ errorMessage: error.message })
  }
  
})
profile
be higher
post-custom-banner

0개의 댓글