diff --git a/src/repositories/friend.repository.js b/src/repositories/friend.repository.js index 21b806c..cc1f01e 100644 --- a/src/repositories/friend.repository.js +++ b/src/repositories/friend.repository.js @@ -6,6 +6,7 @@ import { selectRecentLetterByUserIds, selectLetterDesignByLetterId, } from "./letter.repository.js"; +import { findUserByIdForProfile } from "./user.repository.js"; export async function userExistsFriendRequest(receiverUserId, requesterUserId) { return await prisma.FriendRequest.findFirst({ @@ -209,9 +210,10 @@ export async function selectAllFriendsByUserId(userId) { // 친구별 메타(편지수 + 최근편지 + 디자인) 캐싱 const letterMetaEntries = await Promise.all( uniqueFriendIds.map(async (fid) => { - const [letterCount, recentLetter] = await Promise.all([ + const [letterCount, recentLetter, profile] = await Promise.all([ selectLetterByUserIds(userId, fid), // letterCount 반환한다고 가정 selectRecentLetterByUserIds(userId, fid), // { id, createdAt } 반환한다고 가정 + findUserByIdForProfile(fid) ]); if (!recentLetter) { @@ -220,6 +222,7 @@ export async function selectAllFriendsByUserId(userId) { { letterCount, recentLetter: null, + profileImageUrl: profile.profileImageUrl }, ]; } @@ -234,11 +237,11 @@ export async function selectAllFriendsByUserId(userId) { createdAt: recentLetter.createdAt ?? null, design, }, + profileImageUrl: profile.profileImageUrl }, ]; }) ); - const letterMetaByFriendId = new Map(letterMetaEntries); return rows.map((r) => { @@ -252,6 +255,7 @@ export async function selectAllFriendsByUserId(userId) { id: r.id, friendUserId, nickname: nicknameById.get(friendUserId) ?? null, + profileImageUrl: letterMeta.profileImageUrl, letterCount: letterMeta.letterCount, recentLetter: letterMeta.recentLetter, // null | { createdAt, letterPaperDesign, letterStampDesign } }; diff --git a/src/repositories/user.repository.js b/src/repositories/user.repository.js index 8962762..3b6f051 100644 --- a/src/repositories/user.repository.js +++ b/src/repositories/user.repository.js @@ -791,6 +791,7 @@ export const findPolicyDocumentByKey = async (key) => { // ========== Profile Repository ========== export const findUserByIdForProfile = async (userId) => { + console.log("==================이게 왜 문제야====================="); return prisma.user.findUnique({ where: { id: userId }, select: { diff --git a/src/services/friend.service.js b/src/services/friend.service.js index 80aff91..b023c01 100644 --- a/src/services/friend.service.js +++ b/src/services/friend.service.js @@ -106,7 +106,7 @@ export const postFriendRequest = async (userId, targetUserId, sessionId) => { // 2) 친구 목록 조회 export const getFriendsList = async (userId) => { await userExistsOrThrow(userId); - + try { const friendsList = await selectAllFriendsByUserId(userId); if (friendsList.length === 0) { diff --git a/src/utils/user.util.js b/src/utils/user.util.js index 2743fe6..7bd17c2 100644 --- a/src/utils/user.util.js +++ b/src/utils/user.util.js @@ -4,7 +4,7 @@ export const ALLOWED_JOBS = new Set(["WORKER", "STUDENT", "HOUSEWIFE", "FREELANC export const toIntArray = (arr) => arr.map((v) => Number(v)); export const LETTER_TYPE_ANON = "TO_OTHER"; -export const LETTER_TYPE_SELF = "SELF"; +export const LETTER_TYPE_SELF = "TO_ME"; export const makePreview = (text, maxLen = 30) => { if (!text) return "";