From dec93e879a62093d73d9c0b2c7949a9d1d603908 Mon Sep 17 00:00:00 2001 From: hwmin414 Date: Tue, 28 May 2024 23:59:40 +0900 Subject: [PATCH] feat: send fcm notification to reported user --- src/modules/fcm.js | 5 ++--- src/modules/socket.js | 1 - src/services/reports.js | 8 ++++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/modules/fcm.js b/src/modules/fcm.js index 1fc53946..c284802b 100644 --- a/src/modules/fcm.js +++ b/src/modules/fcm.js @@ -180,14 +180,13 @@ const getTokensOfUsers = async (userIds, notificationOptions = {}) => { * 주어진 token들에 메시지 알림을 전송합니다. * TODO: 알림 전송 실패한 토큰 삭제하기 * @param {Array} tokens - 메시지 알림을 받을 기기의 deviceToken들로 구성된 Array입니다. - * @param {string} type - 메시지 유형으로, "text" | "in" | "out" | "s3img" | "payment" | "settlement" 입니다. * @param {string} title - 보낼 메시지의 제목입니다. * @param {string} body - 보낼 메시지의 본문입니다. * @param {string?} icon - 메시지를 보낸 사람의 프로필 사진 주소입니다. * @param {string?} link - 메시지 알림 팝업을 클릭했을 때 이동할 주소입니다. * @return {Promise} 메시지 알림 전송에 실패한 기기의 수를 반환합니다. 오류가 발생하면 -1을 반환합니다. */ -const sendMessageByTokens = async (tokens, type, title, body, icon, link) => { +const sendMessageByTokens = async (tokens, title, body, icon, link) => { if (tokens.length === 0) return -1; try { const message = { @@ -201,7 +200,7 @@ const sendMessageByTokens = async (tokens, type, title, body, icon, link) => { }, apns: { payload: { aps: { alert: { title, body } } } }, android: { - ttl: 0, + ttl: 3600, }, }; const { responses, failureCount } = await getMessaging().sendMulticast( diff --git a/src/modules/socket.js b/src/modules/socket.js index c238ce64..95b2581c 100644 --- a/src/modules/socket.js +++ b/src/modules/socket.js @@ -191,7 +191,6 @@ const emitChatEvent = async (io, chat) => { ); await sendMessageByTokens( deviceTokensExceptAuthor, - type, name, getMessageBody(type, nickname, content), profileImageUrl, diff --git a/src/services/reports.js b/src/services/reports.js index dbd30d53..31dee68b 100644 --- a/src/services/reports.js +++ b/src/services/reports.js @@ -8,6 +8,7 @@ const { sendReportEmail } = require("../modules/email"); const logger = require("../modules/logger"); const reportEmailPage = require("../views/reportEmailPage"); const { notifyReportToReportChannel } = require("../modules/slackNotification"); +const { getTokensOfUsers, sendMessageByTokens } = require("../modules/fcm"); const createHandler = async (req, res) => { try { @@ -54,6 +55,13 @@ const createHandler = async (req, res) => { emailRoomId ); sendReportEmail(reported.email, report, emailHtml); + await sendMessageByTokens( + await getTokensOfUsers([req.userId]), + "신고가 접수되었습니다.", + "신고 내용을 확인해주세요.", + "", + "/mypage?report=true", + ); } res.status(200).send("User/report : report successful");