From dd1b3e57f9928fc4772ad2b9e7d31144f8ad3098 Mon Sep 17 00:00:00 2001 From: Chae Jeong Ah Date: Wed, 4 Jan 2023 14:17:05 +0900 Subject: [PATCH] =?UTF-8?q?[FIX]=20=EC=9C=A0=EC=A0=80=20=ED=83=88=ED=87=B4?= =?UTF-8?q?=EC=8B=9C=20=ED=91=B8=EC=8B=9C=EC=84=9C=EB=B2=84=20=EC=9C=A0?= =?UTF-8?q?=EC=A0=80=20=EC=82=AD=EC=A0=9C=20=EC=97=B0=EB=8F=99=20(#306)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- functions/api/routes/auth/userDELETE.js | 14 ++++++++++++++ functions/lib/pushServerHandlers.js | 10 +++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/functions/api/routes/auth/userDELETE.js b/functions/api/routes/auth/userDELETE.js index cbb193b..9d56c0e 100644 --- a/functions/api/routes/auth/userDELETE.js +++ b/functions/api/routes/auth/userDELETE.js @@ -7,6 +7,7 @@ const db = require('../../../db/db'); const { userDB } = require("../../../db"); const { getAuth } = require('firebase-admin/auth'); const { nanoid } = require("nanoid"); +const { deletePushUser } = require('../../../lib/pushServerHandlers'); /** * @route DELETE /auth/user @@ -22,13 +23,17 @@ module.exports = async (req, res) => { try { client = await db.connect(req); + deleteUser = await userDB.getUser(client, userId); // DB에서 해당 유저 정보 받아 옴 } catch (error) { functions.logger.error(`[ERROR] [${req.method.toUpperCase()}] ${req.originalUrl}`, `[CONTENT] ${error}`); console.log(error); + const slackMessage = `[ERROR] [${req.method.toUpperCase()}] ${req.originalUrl} ${req.user ? `uid:${req.user.userId}` : 'req.user 없음'} ${JSON.stringify(error)}`; slackAPI.sendMessageToSlack(slackMessage, slackAPI.WEB_HOOK_ERROR_MONITORING); + client.release(); + return res.status(statusCode.INTERNAL_SERVER_ERROR).send(util.fail(statusCode.INTERNAL_SERVER_ERROR, responseMessage.INTERNAL_SERVER_ERROR)); // DB 관련 에러 : 500 INTERNAL SERVER ERROR } @@ -37,9 +42,12 @@ module.exports = async (req, res) => { } catch (error) { functions.logger.error(`[ERROR] [${req.method.toUpperCase()}] ${req.originalUrl}`, `[CONTENT] ${error}`); console.log(error); + const slackMessage = `[ERROR] [${req.method.toUpperCase()}] ${req.originalUrl} ${req.user ? `uid:${req.user.userId}` : 'req.user 없음'} ${JSON.stringify(error)}`; slackAPI.sendMessageToSlack(slackMessage, slackAPI.WEB_HOOK_ERROR_MONITORING); + client.release(); + if (error.errorInfo.code === 'auth/user-not-found') { return res.status(statusCode.NOT_FOUND).send(util.fail(statusCode.NOT_FOUND, responseMessage.NO_USER)); // Firebase Auth에 해당 유저 존재하지 않을 경우 : 404 NOT FOUND } else { @@ -50,6 +58,12 @@ module.exports = async (req, res) => { try { const randomString = `:${nanoid(10)}`; await userDB.deleteUser(client, userId, randomString); // DB에서 해당 유저 삭제 + + const response = await deletePushUser(deleteUser.mongoUserId); + if (response.status != 204) { + return res.status(response.statusCode).send(util.fail(response.statusCode, response.statusText)); + } + res.status(statusCode.OK).send(util.success(statusCode.OK, responseMessage.DELETE_USER)); } catch (error) { functions.logger.error(`[ERROR] [${req.method.toUpperCase()}] ${req.originalUrl}`, `[CONTENT] ${error}`); diff --git a/functions/lib/pushServerHandlers.js b/functions/lib/pushServerHandlers.js index d8e0db4..498e06e 100644 --- a/functions/lib/pushServerHandlers.js +++ b/functions/lib/pushServerHandlers.js @@ -58,4 +58,12 @@ const modifyContentTitle = async (contentId, ogTitle) => { return response; } -module.exports = { createPushServerUser, createNotification, modifyNotificationTime, modifyFcmToken, deleteNotification, modifyContentTitle } \ No newline at end of file +const deletePushUser = async (mongoUserId) => { + const url = `${baseURL}user/${mongoUserId}`; + + const response = await axios.delete(url); + + return response; +} + +module.exports = { createPushServerUser, createNotification, modifyNotificationTime, modifyFcmToken, deleteNotification, modifyContentTitle, deletePushUser } \ No newline at end of file