From cec0e8791c26bf2f2622ac5e18983acbdc87cd4d Mon Sep 17 00:00:00 2001 From: user040131 Date: Thu, 5 Feb 2026 12:31:13 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20acceptFriendRequest=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=88=98=EC=8B=A0=EC=9E=90=20=EB=8C=80=EC=83=81=20?= =?UTF-8?q?=ED=91=B8=EC=8B=9C=20=EC=95=8C=EB=9E=8C=20=EB=B0=9C=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/friend.service.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/services/friend.service.js b/src/services/friend.service.js index e3a08d6..771a336 100644 --- a/src/services/friend.service.js +++ b/src/services/friend.service.js @@ -27,6 +27,7 @@ import { } from "../errors/base.error.js"; import { findMatchingSessionByParticipantUserId, updateMatchingSessionToFriends, updateMatchingSessionToDiscard } from "../repositories/session.repository.js"; import { SessionInternalError, SessionNotFoundError } from "../errors/session.error.js"; +import { sendPushNotification } from "./push.service.js"; async function userExistsOrThrow(userId) { const userById = await findUserById(userId); @@ -197,8 +198,16 @@ export const acceptFriendRequest = async (receiverUserId, requesterUserId) => { receiverUserId, requesterUserId, }); + const nickname = (await findUserById(receiverUserId)).nickname; try { const result = await acceptFriendRequestTx(receiverUserId, requesterUserId); + if(result){ + await sendPushNotification({ + userId: requesterUserId, + type: "FRIEND_MATCH_ACCEPTED", + targetUserNickname: nickname ? nickname : `새 친구(${receiverUserId})` + }) + } return { data: result, }; From 121f9d18affcf66cd5da41063b986c3a1a814792 Mon Sep 17 00:00:00 2001 From: user040131 Date: Thu, 5 Feb 2026 12:33:38 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20FRIEND=5FMATCH=5FSUCCESS=20=EC=97=90?= =?UTF-8?q?=EC=84=9C=20BODY=EC=97=90=20targetUserNickname=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/push.constant.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants/push.constant.js b/src/constants/push.constant.js index 61a8977..dd18ef7 100644 --- a/src/constants/push.constant.js +++ b/src/constants/push.constant.js @@ -41,6 +41,6 @@ export const NOTIFICATION_MESSAGES = { // 5. 친구 매칭 성공 FRIEND_MATCH_SUCCESS: { TITLE: () => "마음이 딱 통했어요! ✨", - BODY: () => "새로운 친구와 연결되었습니다. 먼저 따뜻한 인사를 건네보는 건 어떨까요?", + BODY: (targetUserNickname) => `${targetUserNickname}님과 새로운 친구가 되었습니다. 먼저 따뜻한 인사를 건네보는 건 어떨까요?`, }, }; \ No newline at end of file From 41c32c1c0a349609666f1ff24bc471d14882ea7a Mon Sep 17 00:00:00 2001 From: user040131 Date: Thu, 5 Feb 2026 19:15:29 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=EB=B3=80=EA=B2=BD=20=EC=82=AC?= =?UTF-8?q?=ED=95=AD=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/push.constant.js | 2 +- src/services/friend.service.js | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/constants/push.constant.js b/src/constants/push.constant.js index dd18ef7..2b11ddf 100644 --- a/src/constants/push.constant.js +++ b/src/constants/push.constant.js @@ -41,6 +41,6 @@ export const NOTIFICATION_MESSAGES = { // 5. 친구 매칭 성공 FRIEND_MATCH_SUCCESS: { TITLE: () => "마음이 딱 통했어요! ✨", - BODY: (targetUserNickname) => `${targetUserNickname}님과 새로운 친구가 되었습니다. 먼저 따뜻한 인사를 건네보는 건 어떨까요?`, + BODY: ({ nickname }) => `${nickname}님과 새로운 친구가 되었습니다. 먼저 따뜻한 인사를 건네보는 건 어떨까요?`, }, }; \ No newline at end of file diff --git a/src/services/friend.service.js b/src/services/friend.service.js index 771a336..80aff91 100644 --- a/src/services/friend.service.js +++ b/src/services/friend.service.js @@ -28,6 +28,8 @@ import { import { findMatchingSessionByParticipantUserId, updateMatchingSessionToFriends, updateMatchingSessionToDiscard } from "../repositories/session.repository.js"; import { SessionInternalError, SessionNotFoundError } from "../errors/session.error.js"; import { sendPushNotification } from "./push.service.js"; +import { enqueueJob } from "../utils/queue.util.js"; +import { pushQueue } from "../jobs/bootstraps/push.bootstrap.js"; async function userExistsOrThrow(userId) { const userById = await findUserById(userId); @@ -201,13 +203,14 @@ export const acceptFriendRequest = async (receiverUserId, requesterUserId) => { const nickname = (await findUserById(receiverUserId)).nickname; try { const result = await acceptFriendRequestTx(receiverUserId, requesterUserId); - if(result){ - await sendPushNotification({ + if (result) { + await enqueueJob(pushQueue, "PUSH_BY_FRIEND", { userId: requesterUserId, - type: "FRIEND_MATCH_ACCEPTED", - targetUserNickname: nickname ? nickname : `새 친구(${receiverUserId})` - }) - } + type: "FRIEND_MATCH_SUCCESS", + data: { nickname: nickname ?? `새 친구(${receiverUserId})` }, + }); + } + console.log("성공함"); return { data: result, };