Skip to content

Commit 9b7c195

Browse files
authored
Merge pull request #148 from SWU-Elixir/feat/144-myPage-stats-achievements
docs: myPageApi 응답 스펙에 achievement description 필드 추가
2 parents a7264d3 + e069902 commit 9b7c195

2 files changed

Lines changed: 44 additions & 2 deletions

File tree

src/main/java/BE_Elixir/Elixir/domain/member/controller/api/MyPageApi.java

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ ResponseEntity<CommonResponse<List<MemberChallengeResponseDTO>>> getOtherTop3Cha
555555
"data": [
556556
{
557557
"achievementName": "꾸준함 입문자",
558+
"description": "총 7일 동안 앱에 접속한 사용자",
558559
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/achievement/gray/TotalLogin1_g.png",
559560
"completed": false,
560561
"level": 1,
@@ -563,6 +564,7 @@ ResponseEntity<CommonResponse<List<MemberChallengeResponseDTO>>> getOtherTop3Cha
563564
},
564565
{
565566
"achievementName": "생활 루틴러",
567+
"description": "총 30일 동안 앱에 접속한 사용자",
566568
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/achievement/gray/TotalLogin2_g.png",
567569
"completed": false,
568570
"level": 2,
@@ -592,6 +594,7 @@ ResponseEntity<CommonResponse<List<MemberAchievementResponseDTO>>> getAllMyStats
592594
"data": [
593595
{
594596
"achievementName": "요리 탐험가",
597+
"description": "3개 이상 콘텐츠 스크랩",
595598
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/achievement/color/Scrap1.png",
596599
"completed": true,
597600
"level": 1,
@@ -620,6 +623,7 @@ ResponseEntity<CommonResponse<List<MemberAchievementResponseDTO>>> getMyTop3Achi
620623
"data": [
621624
{
622625
"achievementName": "꾸준함 입문자",
626+
"description": "총 7일 동안 앱에 접속한 사용자",
623627
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/achievement/gray/TotalLogin1_g.png",
624628
"completed": false,
625629
"level": 1,
@@ -650,6 +654,7 @@ ResponseEntity<CommonResponse<List<MemberAchievementResponseDTO>>> getAllStatsAc
650654
"data": [
651655
{
652656
"achievementName": "요리 탐험가",
657+
"description": "3개 이상 콘텐츠 스크랩",
653658
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/achievement/color/Scrap1.png",
654659
"completed": true,
655660
"level": 1,
@@ -676,7 +681,24 @@ ResponseEntity<CommonResponse<List<MemberAchievementResponseDTO>>> getTop3StatsA
676681
"code": "200 OK",
677682
"message": "사용자의 일반 업적 + 챌린지 업적 통합 최신 3개 조회 성공",
678683
"data": [
679-
684+
{
685+
"achievementName": "초보 요리사",
686+
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/achievement/color/RecipeUpload1.png",
687+
"completed": true,
688+
"completedAt": "2025-07-15T13:37:07"
689+
},
690+
{
691+
"achievementName": "봄기운 충전소",
692+
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/challenge/achievement-color/4%EC%9B%94%EC%B1%8C%EB%A6%B0%EC%A7%80%EC%BB%AC%EB%9F%AC.png",
693+
"completed": true,
694+
"completedAt": "2025-04-01T00:00:00"
695+
},
696+
{
697+
"achievementName": "환절기 방어왕",
698+
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/challenge/achievement-color/3%EC%9B%94%EC%B1%8C%EB%A6%B0%EC%A7%80%EC%BB%AC%EB%9F%AC.png",
699+
"completed": true,
700+
"completedAt": "2025-03-01T00:00:00"
701+
}
680702
]
681703
}
682704
""")))
@@ -698,7 +720,24 @@ ResponseEntity<CommonResponse<List<MemberRecentAchievementDTO>>> getTop3RecentAc
698720
"code": "200 OK",
699721
"message": "사용자의 일반 업적 + 챌린지 업적 통합 최신 3개 조회 성공",
700722
"data": [
701-
723+
{
724+
"achievementName": "초보 요리사",
725+
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/achievement/color/RecipeUpload1.png",
726+
"completed": true,
727+
"completedAt": "2025-07-15T13:37:07"
728+
},
729+
{
730+
"achievementName": "봄기운 충전소",
731+
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/challenge/achievement-color/4%EC%9B%94%EC%B1%8C%EB%A6%B0%EC%A7%80%EC%BB%AC%EB%9F%AC.png",
732+
"completed": true,
733+
"completedAt": "2025-04-01T00:00:00"
734+
},
735+
{
736+
"achievementName": "환절기 방어왕",
737+
"achievementImageUrl": "https://s3elixir.s3.ap-northeast-2.amazonaws.com/challenge/achievement-color/3%EC%9B%94%EC%B1%8C%EB%A6%B0%EC%A7%80%EC%BB%AC%EB%9F%AC.png",
738+
"completed": true,
739+
"completedAt": "2025-03-01T00:00:00"
740+
}
702741
]
703742
}
704743
""")))

src/main/java/BE_Elixir/Elixir/domain/member/dto/response/MemberAchievementResponseDTO.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
@AllArgsConstructor
1111
public class MemberAchievementResponseDTO {
1212
private String achievementName;
13+
private String description; // 설명 문구
1314
private String achievementImageUrl;
1415
private boolean completed;
1516
private int level;
@@ -20,6 +21,7 @@ public static MemberAchievementResponseDTO from(MemberAchievement ma) {
2021
boolean isCompleted = ma.isCompleted();
2122
return new MemberAchievementResponseDTO(
2223
ma.getAchievement().getAchievementName(),
24+
ma.getAchievement().getDescription(),
2325
isCompleted ? ma.getAchievement().getAchievementImageUrl()
2426
: ma.getAchievement().getGrayAchievementImageUrl(),
2527
isCompleted,
@@ -36,6 +38,7 @@ public static MemberAchievementResponseDTO from(Achievement achievement, MemberA
3638

3739
return MemberAchievementResponseDTO.builder()
3840
.achievementName(achievement.getAchievementName())
41+
.description(achievement.getDescription())
3942
.achievementImageUrl(imageUrl)
4043
.completed(ma.isCompleted())
4144
.level(achievement.getLevel())

0 commit comments

Comments
 (0)