From 06d0f698cc756dac662e448bbe8a38b36df02278 Mon Sep 17 00:00:00 2001 From: soyun0318 Date: Fri, 13 Feb 2026 00:41:30 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A9=A4=EB=B2=84=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EC=86=8C=EC=BC=93=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/task.service.js | 4 ---- src/socket/handlers/task.handler.js | 18 +++++++++--------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/services/task.service.js b/src/services/task.service.js index b12c12d..befb7ac 100644 --- a/src/services/task.service.js +++ b/src/services/task.service.js @@ -749,16 +749,13 @@ class TaskService { const member = await taskRepository.findMemberInTask(taskId, userId); if (!member) throw new NotFoundError("해당 과제에서 해당 유저를 찾을 수 없음"); - // 📍 0이 들어오면 방장(Owner)이 되려는 것 const isTargetBecomingOwner = (role === 0); return await prisma.$transaction(async (tx) => { if (isTargetBecomingOwner) { - // 1. 새로운 방장을 제외한 나머지는 모두 '일반 멤버(true)'로 변경 await taskRepository.resetOtherMembersRole(taskId, userId, tx); } - // 2. 📍 핵심: 방장(Owner)이면 false를, 아니면 true를 DB에 저장 const dbRoleValue = isTargetBecomingOwner ? false : true; return await taskRepository.updateMemberRole(member.id, dbRoleValue, tx); @@ -767,7 +764,6 @@ class TaskService { // 단일 세부 과제 생성 서비스 async createSingleSubTask(userId, taskId, data) { - console.log("📍 서비스로 넘어온 taskId:", taskId); const { title, deadline, isAlarm } = data; // 부모 과제 존재 여부 확인 diff --git a/src/socket/handlers/task.handler.js b/src/socket/handlers/task.handler.js index 6695111..f35f2e8 100644 --- a/src/socket/handlers/task.handler.js +++ b/src/socket/handlers/task.handler.js @@ -501,27 +501,27 @@ export const setupTaskHandlers = (io, socket) => { } }); - // 팀원 역할 변경 + // 팀원 역할 변경 소켓 핸들러 수정 socket.on(taskEvents.UPDATE_MEMBER, async (payload, callback) => { try { - const { taskId, memberId, role } = payload; - console.log(`[SOCKET][member:update] 요청 수신`, { - taskId, - memberId, - role, - }); + // 📍 memberId 대신 userId를 받도록 수정 + const { taskId, userId, role } = payload; + console.log(`[SOCKET][member:update] 요청 수신`, { taskId, userId, role }); + // 우리가 아까 고친 서비스 함수 호출 const result = await taskService.modifyMemberRole( Number(taskId), - Number(memberId), + Number(userId), // 📍 userId로 전달 role, ); // 같은 방 팀원들에게 알림 io.to(`task:${taskId}`).emit(taskEvents.MEMBER_UPDATED, { memberId: result.id, - role: result.role, userId: result.userId, + taskId: result.taskId, + // 📍 0(Owner) 또는 1(Member) 매핑 적용 + role: result.role ? 0 : 1 }); callback?.({ success: true, data: result });