Skip to content

Commit 64cb330

Browse files
authored
Merge pull request #32 from Leets-Official/31-fearture-commitfetch-add-dto
31 fearture commit/fetch API에 DTO 추가
2 parents 07ce5e3 + d865362 commit 64cb330

File tree

7 files changed

+43
-21
lines changed

7 files changed

+43
-21
lines changed

src/main/java/com/leets/commitatobe/domain/commit/presentation/CommitController.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ public class CommitController {
1919
private final FetchCommitsTest fetchCommitsTest;
2020

2121
@Operation(
22-
summary = "커밋 기록 불러오기",
23-
description = "GitHub에서 커밋 기록을 가져와 DB에 저장합니다.")
24-
@PostMapping("/fetch")
22+
summary = "커밋 기록 업데이트",
23+
description = "GitHub에서 커밋 기록을 가져와 DB에 저장하고 사용자의 정보를 최신화 합니다.")
24+
@PostMapping("/update")
2525
public ApiResponse<CommitResponse> fetchCommits(HttpServletRequest request) {
2626
return ApiResponse.onSuccess(fetchCommits.execute(request));
2727
}
2828

2929
@Operation(
30-
summary = "커밋 기록 불러오기 (테스트)",
31-
description = "테스트를 위해, 7월 1일부터 커밋 기록을 가져와 DB에 저장합니다.")
32-
@PostMapping("test/fetch")
30+
summary = "커밋 기록 업데이트 (테스트)",
31+
description = "테스트를 위해, 7월 1일부터 커밋 기록을 가져와 DB에 저장하고 사용자의 정보를 최신화 합니다.")
32+
@PostMapping("update/test")
3333
public ApiResponse<CommitResponse> fetchCommitsTest(HttpServletRequest request) {
3434
return ApiResponse.onSuccess(fetchCommitsTest.execute(request));
3535
}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,34 @@
11
package com.leets.commitatobe.domain.commit.presentation.dto.response;
22

3+
import com.leets.commitatobe.domain.user.domain.User;
4+
import lombok.AccessLevel;
5+
import lombok.Builder;
6+
7+
import java.time.LocalDateTime;
8+
9+
@Builder(access = AccessLevel.PRIVATE)
310
public record CommitResponse(
4-
String message
11+
Boolean isMyAccount,
12+
String githubId,
13+
Integer exp,
14+
String tierName,
15+
String characterUrl,
16+
Integer consecutiveCommitDays,
17+
Integer todayCommitCount,
18+
Integer totalCommitCount,
19+
LocalDateTime updatedAt
520
) {
21+
public static CommitResponse of(boolean isMyAccount, User user){
22+
return CommitResponse.builder()
23+
.isMyAccount(isMyAccount)
24+
.githubId(user.getGithubId())
25+
.exp(user.getExp())
26+
.tierName(user.getTier().getTierName())
27+
.characterUrl(user.getTier().getCharacterUrl())
28+
.consecutiveCommitDays(user.getConsecutiveCommitDays())
29+
.todayCommitCount(user.getTodayCommitCount())
30+
.totalCommitCount(user.getTotalCommitCount())
31+
.updatedAt(user.getUpdatedAt())
32+
.build();
33+
}
634
}

src/main/java/com/leets/commitatobe/domain/commit/usecase/FetchCommits.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
import com.leets.commitatobe.domain.commit.domain.Commit;
44
import com.leets.commitatobe.domain.commit.domain.repository.CommitRepository;
55
import com.leets.commitatobe.domain.commit.presentation.dto.response.CommitResponse;
6-
import com.leets.commitatobe.domain.login.usecase.LoginCommandServiceImpl;
76
import com.leets.commitatobe.domain.login.usecase.LoginQueryService;
87
import com.leets.commitatobe.domain.user.domain.User;
98
import com.leets.commitatobe.domain.user.domain.repository.UserRepository;
109
import com.leets.commitatobe.domain.user.usecase.UserQueryService;
1110
import com.leets.commitatobe.global.exception.ApiException;
1211
import com.leets.commitatobe.global.response.code.status.ErrorStatus;
13-
import com.leets.commitatobe.global.response.code.status.SuccessStatus;
1412
import jakarta.servlet.http.HttpServletRequest;
1513
import lombok.RequiredArgsConstructor;
1614
import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -29,7 +27,6 @@ public class FetchCommits {
2927
private final CommitRepository commitRepository;
3028
private final UserRepository userRepository;
3129
private final GitHubService gitHubService; // GitHub API 통신
32-
private final LoginCommandServiceImpl loginCommandService;
3330
private final LoginQueryService loginQueryService;
3431
private final ExpService expService;
3532
private final UserQueryService userQueryService;
@@ -85,7 +82,7 @@ public CommitResponse execute(HttpServletRequest request) {
8582
throw new RuntimeException(e);
8683
}
8784

88-
return new CommitResponse(SuccessStatus._OK.getMessage());
85+
return CommitResponse.of(true, user);
8986
}
9087

9188
private void saveCommits(User user) {

src/main/java/com/leets/commitatobe/domain/commit/usecase/FetchCommitsTest.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
import com.leets.commitatobe.domain.commit.domain.Commit;
44
import com.leets.commitatobe.domain.commit.domain.repository.CommitRepository;
55
import com.leets.commitatobe.domain.commit.presentation.dto.response.CommitResponse;
6-
import com.leets.commitatobe.domain.login.usecase.LoginCommandServiceImpl;
76
import com.leets.commitatobe.domain.login.usecase.LoginQueryService;
87
import com.leets.commitatobe.domain.user.domain.User;
98
import com.leets.commitatobe.domain.user.domain.repository.UserRepository;
109
import com.leets.commitatobe.domain.user.usecase.UserQueryService;
1110
import com.leets.commitatobe.global.exception.ApiException;
1211
import com.leets.commitatobe.global.response.code.status.ErrorStatus;
13-
import com.leets.commitatobe.global.response.code.status.SuccessStatus;
1412
import jakarta.servlet.http.HttpServletRequest;
1513
import lombok.RequiredArgsConstructor;
1614
import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -29,7 +27,6 @@ public class FetchCommitsTest {
2927
private final CommitRepository commitRepository;
3028
private final UserRepository userRepository;
3129
private final GitHubService gitHubService; // GitHub API 통신
32-
private final LoginCommandServiceImpl loginCommandService;
3330
private final LoginQueryService loginQueryService;
3431
private final ExpService expService;
3532
private final UserQueryService userQueryService;
@@ -82,7 +79,7 @@ public CommitResponse execute(HttpServletRequest request) {
8279
throw new RuntimeException(e);
8380
}
8481

85-
return new CommitResponse(SuccessStatus._OK.getMessage());
82+
return CommitResponse.of(true, user);
8683
}
8784

8885
private void saveCommits(User user) {

src/main/java/com/leets/commitatobe/domain/user/presentation/dto/response/UserInfoResponse.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package com.leets.commitatobe.domain.user.presentation.dto.response;
22

3-
import com.leets.commitatobe.domain.commit.domain.Commit;
43
import com.leets.commitatobe.domain.user.domain.User;
54
import lombok.AccessLevel;
65
import lombok.Builder;
76

87
import java.time.LocalDateTime;
9-
import java.util.List;
108

119
@Builder(access = AccessLevel.PRIVATE)
1210
public record UserInfoResponse(
1311
Boolean isMyAccount,
1412
String githubId,
13+
Integer exp,
1514
String tierName,
1615
String characterUrl,
1716
Integer consecutiveCommitDays,
@@ -23,6 +22,7 @@ public static UserInfoResponse of(boolean isMyAccount, User user){
2322
return UserInfoResponse.builder()
2423
.isMyAccount(isMyAccount)
2524
.githubId(user.getGithubId())
25+
.exp(user.getExp())
2626
.tierName(user.getTier().getTierName())
2727
.characterUrl(user.getTier().getCharacterUrl())
2828
.consecutiveCommitDays(user.getConsecutiveCommitDays())

src/main/java/com/leets/commitatobe/domain/user/presentation/dto/response/UserRankResponse.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.leets.commitatobe.domain.user.presentation.dto.response;
22

33
public record UserRankResponse(
4-
String username,
4+
String githubId,
55
Integer exp,
66
Integer consecutiveCommitDays,
77
String tierName,

src/main/java/com/leets/commitatobe/domain/user/usecase/UserQueryServiceImpl.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ public UserSearchResponse searchUsersByGithubId(String githubId) {// 유저 이
3939
user.getRanking(),
4040
user.getGithubId(),
4141
tier.getTierName(),
42-
user.getConsecutiveCommitDays(),
43-
user.getExp()
42+
user.getExp(),
43+
user.getConsecutiveCommitDays()
4444
);
4545
}
4646

@@ -57,7 +57,7 @@ public CustomPageResponse<UserRankResponse> getUsersOrderByExp(int page, int siz
5757
Tier tier = user.getTier();
5858

5959
return new UserRankResponse(
60-
user.getUsername(),
60+
user.getGithubId(),
6161
user.getExp(),
6262
user.getConsecutiveCommitDays(),
6363
tier != null ? tier.getTierName() : "Unranked",

0 commit comments

Comments
 (0)