Skip to content

Commit

Permalink
feat(challenge): 챌린지 기록 뷰에 챌린지 정보 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
wwingyou committed Feb 1, 2025
1 parent 2ec44f4 commit 3bbaac8
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 17 deletions.
22 changes: 14 additions & 8 deletions src/main/java/com/goolbitg/api/service/ChallengeServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ public ChallengeRecordDto checkChallenge(String userId, Long challengeId, LocalD
userStatRepository.save(userStat);
dailyRecordRepository.save(dailyRecord);

return getChallengeRecordDto(record);
return getChallengeRecordDto(challenge, record);
}

private void increaseAchievementGuage(Challenge challenge, User user, UserStat userStat) {
Expand Down Expand Up @@ -257,7 +257,10 @@ public ChallengeRecordDto getChallengeRecord(String userId, Long challengeId, Lo
}
ChallengeRecord record = result.get();

return getChallengeRecordDto(record);
Challenge challenge = challengeRepository.findById(challengeId)
.orElseThrow(() -> ChallengeException.challengeNotExist(challengeId));

return getChallengeRecordDto(challenge, record);
}

@Override
Expand Down Expand Up @@ -287,6 +290,8 @@ public ChallengeStatDto getChallengeStat(String userId, Long challengeId) {

@Override
public ChallengeTrippleDto getChallengeTripple(String userId, Long challengeId, LocalDate date) {
Challenge challenge = challengeRepository.findById(challengeId)
.orElseThrow(() -> ChallengeException.challengeNotExist(challengeId));
ChallengeRecordId recordId = new ChallengeRecordId(challengeId, userId, date);
ChallengeRecord currentRecord = challengeRecordRepository.findById(recordId)
.orElseThrow(() -> ChallengeException.notEnrolled(challengeId));
Expand All @@ -300,7 +305,7 @@ public ChallengeTrippleDto getChallengeTripple(String userId, Long challengeId,
records.add(challengeRecordRepository.findById(recordId).get());
date = date.plusDays(1);
}
return getChallengeTrippleDto(challengeId, records, currentRecord, stat);
return getChallengeTrippleDto(challenge, records, currentRecord, stat);
}


Expand Down Expand Up @@ -332,9 +337,9 @@ private PaginatedChallengeDto getPaginatedChallengeDto(Page<Challenge> result) {
return dto;
}

private ChallengeRecordDto getChallengeRecordDto(ChallengeRecord record) {
private ChallengeRecordDto getChallengeRecordDto(Challenge challenge, ChallengeRecord record) {
ChallengeRecordDto dto = new ChallengeRecordDto();
dto.setChallengeId(record.getChallengeId());
dto.setChallenge(getChallengeDto(challenge));
dto.setUserId(record.getUserId());
dto.setStatus(record.getStatus());
dto.setDate(record.getDate());
Expand All @@ -349,7 +354,8 @@ private PaginatedChallengeRecordDto getPaginatedRecordDto(Page<ChallengeRecord>
dto.setPage(result.getNumber());
dto.setSize((int)result.get().count());
dto.setItems(result.map(e -> {
return getChallengeRecordDto(e);
Challenge c = challengeRepository.findById(e.getChallengeId()).get();
return getChallengeRecordDto(c, e);
}).toList());

return dto;
Expand All @@ -365,9 +371,9 @@ private ChallengeStatDto getChallengeStatDto(ChallengeStat stat) {
return dto;
}

private ChallengeTrippleDto getChallengeTrippleDto(Long challengeId, List<ChallengeRecord> records, ChallengeRecord currentRecord, ChallengeStat stat) {
private ChallengeTrippleDto getChallengeTrippleDto(Challenge challenge, List<ChallengeRecord> records, ChallengeRecord currentRecord, ChallengeStat stat) {
ChallengeTrippleDto dto = new ChallengeTrippleDto();
dto.setChallengeId(challengeId);
dto.setChallenge(getChallengeDto(challenge));
if (currentRecord.getStatus() == ChallengeRecordStatus.WAIT)
dto.setDuration(stat.getContinueCount() + 1);
else
Expand Down
12 changes: 4 additions & 8 deletions src/main/resources/api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1609,10 +1609,8 @@ components:
ChallengeRecordDto:
type: object
properties:
challengeId:
type: integer
format: int64
description: 챌린지 ID
challenge:
$ref: '#/components/schemas/ChallengeDto'
userId:
type: string
description: 유저 ID
Expand All @@ -1630,10 +1628,8 @@ components:
ChallengeTrippleDto:
type: object
properties:
challengeId:
type: integer
format: int64
example: 1
challenge:
$ref: '#/components/schemas/ChallengeDto'
duration:
type: integer
example: 7
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ void get_challenge_tripple() throws Exception {
Long challengeId = 2L;
mockMvc.perform(get("/challengeTripple/{challengeId}", challengeId))
.andExpect(status().isOk())
.andExpect(jsonPath("$.challengeId").value(challengeId))
.andExpect(jsonPath("$.challenge.id").value(challengeId))
.andExpect(jsonPath("$.check1").value("SUCCESS"))
.andExpect(jsonPath("$.check2").value("WAIT"))
.andExpect(jsonPath("$.check3").value("WAIT"))
Expand Down

0 comments on commit 3bbaac8

Please sign in to comment.