diff --git a/functions/api/routes/room/roomStatusPOST.js b/functions/api/routes/room/roomStatusPOST.js index 33197e8..2fd337a 100644 --- a/functions/api/routes/room/roomStatusPOST.js +++ b/functions/api/routes/room/roomStatusPOST.js @@ -19,6 +19,8 @@ const { userDB, roomDB, recordDB, noticeDB } = require('../../../db'); * 4. 습관 시작하지 않은 방에서의 요청 * 5. 이미 인증을 완료한 사용자로부터의 요청 * 6. 이미 쉴래요를 사용한 사용자로부터의 요청 + * 7. 쉴래요 잔여횟수가 0인 사용쟈로부터의 요청 + * 8. 이미 고민중 상태의 사용자로부터의 요청 */ module.exports = async (req, res) => { @@ -69,7 +71,7 @@ module.exports = async (req, res) => { } if (statusType === 'REST') { - // @error 7. 쉴래요 가능 횟수가 0인 사용쟈 + // @error 7. 쉴래요 잔여횟수가 0인 사용쟈로부터의 요청 const rawRest = await roomDB.getRestCountByIds(client, roomId, userId); const restCount = rawRest.rest; if (restCount < 1) { @@ -84,6 +86,10 @@ module.exports = async (req, res) => { // 고민중을 눌렀으면 Notification에 추가, PushAlarm 전송 if (statusType === 'CONSIDER') { + // @error 8. 이미 고민중 상태의 사용자로부터의 요청 + if (recentRecord.status === 'CONSIDER') { + return res.status(statusCode.BAD_REQUEST).send(util.fail(statusCode.BAD_REQUEST, responseMessage.CONSIDER_ALREADY_DONE)); + } const sender = await userDB.getUserById(client, userId); const receivers = await roomDB.getFriendsByIds(client, roomId, userId); const receiversIds = receivers.map((r) => r.userId); diff --git a/functions/constants/responseMessage.js b/functions/constants/responseMessage.js index 4eb7041..68b6e83 100644 --- a/functions/constants/responseMessage.js +++ b/functions/constants/responseMessage.js @@ -82,6 +82,7 @@ module.exports = { INVALID_USER_STATUS: '유효하지 않은 status type입니다', CERTIFICATION_ALREADY_DONE: '이미 인증을 완료하였습니다', REST_ALREADY_DONE: '이미 쉴래요를 사용한 사용자입니다', + CONSIDER_ALREADY_DONE: '이미 고민중 상태의 사용자입니다', UPDATE_STATUS_SUCCESS: '상태 변경 완료', REST_COUNT_ZERO: '쉴래요 사용 가능 횟수가 0인 사용자입니다',