Skip to content

Commit

Permalink
Merge pull request #32 from Leets-Official/31-fearture-commitfetch-ad…
Browse files Browse the repository at this point in the history
…d-dto

31 fearture commit/fetch API에 DTO 추가
  • Loading branch information
yechan-kim authored Jul 30, 2024
2 parents 07ce5e3 + d865362 commit 64cb330
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ public class CommitController {
private final FetchCommitsTest fetchCommitsTest;

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

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

import com.leets.commitatobe.domain.user.domain.User;
import lombok.AccessLevel;
import lombok.Builder;

import java.time.LocalDateTime;

@Builder(access = AccessLevel.PRIVATE)
public record CommitResponse(
String message
Boolean isMyAccount,
String githubId,
Integer exp,
String tierName,
String characterUrl,
Integer consecutiveCommitDays,
Integer todayCommitCount,
Integer totalCommitCount,
LocalDateTime updatedAt
) {
public static CommitResponse of(boolean isMyAccount, User user){
return CommitResponse.builder()
.isMyAccount(isMyAccount)
.githubId(user.getGithubId())
.exp(user.getExp())
.tierName(user.getTier().getTierName())
.characterUrl(user.getTier().getCharacterUrl())
.consecutiveCommitDays(user.getConsecutiveCommitDays())
.todayCommitCount(user.getTodayCommitCount())
.totalCommitCount(user.getTotalCommitCount())
.updatedAt(user.getUpdatedAt())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
import com.leets.commitatobe.domain.commit.domain.Commit;
import com.leets.commitatobe.domain.commit.domain.repository.CommitRepository;
import com.leets.commitatobe.domain.commit.presentation.dto.response.CommitResponse;
import com.leets.commitatobe.domain.login.usecase.LoginCommandServiceImpl;
import com.leets.commitatobe.domain.login.usecase.LoginQueryService;
import com.leets.commitatobe.domain.user.domain.User;
import com.leets.commitatobe.domain.user.domain.repository.UserRepository;
import com.leets.commitatobe.domain.user.usecase.UserQueryService;
import com.leets.commitatobe.global.exception.ApiException;
import com.leets.commitatobe.global.response.code.status.ErrorStatus;
import com.leets.commitatobe.global.response.code.status.SuccessStatus;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
Expand All @@ -29,7 +27,6 @@ public class FetchCommits {
private final CommitRepository commitRepository;
private final UserRepository userRepository;
private final GitHubService gitHubService; // GitHub API 통신
private final LoginCommandServiceImpl loginCommandService;
private final LoginQueryService loginQueryService;
private final ExpService expService;
private final UserQueryService userQueryService;
Expand Down Expand Up @@ -85,7 +82,7 @@ public CommitResponse execute(HttpServletRequest request) {
throw new RuntimeException(e);
}

return new CommitResponse(SuccessStatus._OK.getMessage());
return CommitResponse.of(true, user);
}

private void saveCommits(User user) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
import com.leets.commitatobe.domain.commit.domain.Commit;
import com.leets.commitatobe.domain.commit.domain.repository.CommitRepository;
import com.leets.commitatobe.domain.commit.presentation.dto.response.CommitResponse;
import com.leets.commitatobe.domain.login.usecase.LoginCommandServiceImpl;
import com.leets.commitatobe.domain.login.usecase.LoginQueryService;
import com.leets.commitatobe.domain.user.domain.User;
import com.leets.commitatobe.domain.user.domain.repository.UserRepository;
import com.leets.commitatobe.domain.user.usecase.UserQueryService;
import com.leets.commitatobe.global.exception.ApiException;
import com.leets.commitatobe.global.response.code.status.ErrorStatus;
import com.leets.commitatobe.global.response.code.status.SuccessStatus;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
Expand All @@ -29,7 +27,6 @@ public class FetchCommitsTest {
private final CommitRepository commitRepository;
private final UserRepository userRepository;
private final GitHubService gitHubService; // GitHub API 통신
private final LoginCommandServiceImpl loginCommandService;
private final LoginQueryService loginQueryService;
private final ExpService expService;
private final UserQueryService userQueryService;
Expand Down Expand Up @@ -82,7 +79,7 @@ public CommitResponse execute(HttpServletRequest request) {
throw new RuntimeException(e);
}

return new CommitResponse(SuccessStatus._OK.getMessage());
return CommitResponse.of(true, user);
}

private void saveCommits(User user) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package com.leets.commitatobe.domain.user.presentation.dto.response;

import com.leets.commitatobe.domain.commit.domain.Commit;
import com.leets.commitatobe.domain.user.domain.User;
import lombok.AccessLevel;
import lombok.Builder;

import java.time.LocalDateTime;
import java.util.List;

@Builder(access = AccessLevel.PRIVATE)
public record UserInfoResponse(
Boolean isMyAccount,
String githubId,
Integer exp,
String tierName,
String characterUrl,
Integer consecutiveCommitDays,
Expand All @@ -23,6 +22,7 @@ public static UserInfoResponse of(boolean isMyAccount, User user){
return UserInfoResponse.builder()
.isMyAccount(isMyAccount)
.githubId(user.getGithubId())
.exp(user.getExp())
.tierName(user.getTier().getTierName())
.characterUrl(user.getTier().getCharacterUrl())
.consecutiveCommitDays(user.getConsecutiveCommitDays())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.leets.commitatobe.domain.user.presentation.dto.response;

public record UserRankResponse(
String username,
String githubId,
Integer exp,
Integer consecutiveCommitDays,
String tierName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public UserSearchResponse searchUsersByGithubId(String githubId) {// 유저 이
user.getRanking(),
user.getGithubId(),
tier.getTierName(),
user.getConsecutiveCommitDays(),
user.getExp()
user.getExp(),
user.getConsecutiveCommitDays()
);
}

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

return new UserRankResponse(
user.getUsername(),
user.getGithubId(),
user.getExp(),
user.getConsecutiveCommitDays(),
tier != null ? tier.getTierName() : "Unranked",
Expand Down

0 comments on commit 64cb330

Please sign in to comment.