Skip to content

Commit 9f7662e

Browse files
authored
Merge pull request #154 from umc-commit/fix/front-user-artist-google
REFACTOR : 사용자 프로필 조회에 review 추가 + swagger 문서 수정
2 parents 3bda505 + 8203701 commit 9f7662e

File tree

4 files changed

+63
-9
lines changed

4 files changed

+63
-9
lines changed

src/common/swagger/user.json

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,41 @@
177177
"userId":{"type":"string", "example":"7"},
178178
"nickname":{"type":"string", "example":""},
179179
"profileImage":{"type": ["string", null], "example":null},
180-
"description":{"type":"string", "example":"."}
180+
"description":{"type":"string", "example":"."},
181+
"badges":{
182+
"type":"array",
183+
"items":{
184+
"properties":{
185+
"id":{"type":"string", "example":"1"},
186+
"earnedAt":{"type":"string", "example":"2025-08-10T05:16:02.000Z"},
187+
"badge":{
188+
"type":"array",
189+
"items":{
190+
"properties":{
191+
"id":{"type":"string", "example":"1"},
192+
"type":{"type":"string", "example":"follow"},
193+
"threshold":{"type":"integer", "example":5},
194+
"name":{"type":"string", "example":"팔로워 5명 달성"},
195+
"badgeImage":{"type":"string", "example":"null"}
196+
}
197+
}
198+
},
199+
"reviews":{
200+
"type":"array",
201+
"items":{
202+
"properties":{
203+
"id":{"type":"integer", "example":101},
204+
"requestId":{"type":"integer", "example":77},
205+
"rate":{"type":"integer", "example":5},
206+
"content":{"type":"string", "example":"좋았습니다"},
207+
"createdAt":{"type":"string", "example":"2025-08-09T12:30:00.000Z"},
208+
"updatedAt":{"type":"string", "example":"2025-08-09T12:30:00.000Z"}
209+
}
210+
}
211+
}
212+
}
213+
}
214+
}
181215
}
182216
}
183217
}

src/user/controller/user.controller.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,12 @@ export const getUserProfile = async(req, res, next) => {
4848
const accountId = req.user.accountId;
4949
console.log("controller accountId -> ", accountId);
5050

51+
const userId = req.user.userId;
52+
5153
const role = req.user.role;
5254
console.log(role);
5355

54-
const result = await UserService.getUserProfile(accountId, role);
56+
const result = await UserService.getUserProfile(accountId, userId, role);
5557

5658
res.status(StatusCodes.OK).success(result);
5759
} catch(err){

src/user/repository/user.repository.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,21 @@ export const UserRepository = {
310310
}
311311
});
312312
},
313+
// 사용자가 작성한 리뷰 조회
314+
async UserReviewList(userId) {
315+
return await prisma.review.findMany({
316+
wehre : {useraId: userId},
317+
select:{
318+
id:true,
319+
requestId:true,
320+
rate: true,
321+
content:true,
322+
createddAt: true,
323+
updatedAt: true,
324+
},
325+
orderBy: {createdAt:"desc"},
326+
});
327+
}
313328

314329
};
315330

src/user/service/user.service.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export const UserService = {
111111
}
112112
},
113113
// 사용자 프로필 조회
114-
async getUserProfile(accountId, role) {
114+
async getUserProfile(accountId, userId, role) {
115115

116116
let result;
117117

@@ -128,6 +128,9 @@ export const UserService = {
128128
earnedAt: userBadge.earnedAt,
129129
badge: userBadge.badge
130130
}));
131+
132+
const reviews = (await UserRepository.UserReviewList(userId)) ?? [];
133+
131134

132135

133136
return {
@@ -137,7 +140,8 @@ export const UserService = {
137140
nickname: user.nickname,
138141
profileImage:user.profileImage,
139142
description: user.description,
140-
badges
143+
badges,
144+
reviews
141145
}
142146
}
143147
}
@@ -149,11 +153,10 @@ export const UserService = {
149153

150154
console.log("userBadges 확인:", result.userBadges);
151155

152-
153-
const badges = result.userBadges.map(userBadge => ({
154-
id: userBadge.id,
155-
earnedAt: userBadge.earnedAt,
156-
badge: userBadge.badge
156+
const badges = result.userBadges.map((userBadge) => ({
157+
id: userBadge.id,
158+
earnedAt: userBadge.earnedAt,
159+
badge: userBadge.badge? [userBadge.badge] : []
157160
}));
158161

159162
return {

0 commit comments

Comments
 (0)