Skip to content

Commit 451ad8c

Browse files
authored
Merge pull request #92 from CommitField/feat/#65
fix: λ ˆλ“œνŒλ‹€ μ˜μ‘΄μ„± μ‚­μ œ, λ©”μ„œλ“œ μˆ˜μ •
2 parents b85e6af + 37efaca commit 451ad8c

File tree

14 files changed

+47
-214
lines changed

14 files changed

+47
-214
lines changed

β€Ž.gitignoreβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ docker-compose.yaml
7777
db/
7878
.docker
7979
data/
80+
.dummy
8081

8182
### secret ν”„λ‘œν•„
8283
application-secret.yml

β€Žbuild.gradle.ktsβ€Ž

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,6 @@ dependencies {
7676
// Spring Security OAuth2
7777
implementation ("org.springframework.security:spring-security-oauth2-client:6.4.2") // Or the version you're using
7878
implementation ("org.springframework.security:spring-security-oauth2-core:6.4.2") // Or the version you're using
79-
80-
// Spring Kafka
81-
implementation("org.springframework.kafka:spring-kafka")
82-
83-
// Kafka ν΄λΌμ΄μ–ΈνŠΈ (Redpanda와 ν˜Έν™˜)
84-
implementation("org.apache.kafka:kafka-clients:3.6.0")
85-
86-
// JSON 직렬화/역직렬화 (Kafka λ©”μ‹œμ§€ 처리)
87-
implementation("com.fasterxml.jackson.core:jackson-databind")
88-
89-
// ν…ŒμŠ€νŠΈμš© Kafka μž„λ² λ””λ“œ μ„œλ²„ (선택 사항)
90-
testImplementation("org.springframework.kafka:spring-kafka-test")
9179
}
9280

9381
tasks.withType<Test> {

β€Žsrc/main/java/cmf/commitField/domain/commit/scheduler/CommitScheduler.javaβ€Ž

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import cmf.commitField.domain.commit.sinceCommit.service.CommitCacheService;
44
import cmf.commitField.domain.commit.totalCommit.service.TotalCommitService;
5-
import cmf.commitField.domain.redpanda.RedpandaProducer;
65
import cmf.commitField.domain.user.entity.User;
76
import cmf.commitField.domain.user.repository.UserRepository;
87
import lombok.RequiredArgsConstructor;
@@ -23,7 +22,6 @@
2322
public class CommitScheduler {
2423
private final TotalCommitService totalCommitService;
2524
private final CommitCacheService commitCacheService;
26-
private final RedpandaProducer redpandaProducer;
2725
private final UserRepository userRepository;
2826
private final StringRedisTemplate redisTemplate;
2927
private final AtomicInteger counter = new AtomicInteger(0);
@@ -68,7 +66,7 @@ private void processUserCommit(User user) {
6866
}
6967

7068
// ν˜„μž¬ 컀밋 개수 쑰회
71-
long currentCommitCount = totalCommitService.getSeasonCommits(
69+
long currentCommitCount = totalCommitService.getUpdateCommits(
7270
user.getUsername(),
7371
lastCommitted, // πŸš€ Redis에 μ €μž₯된 lastCommitted κΈ°μ€€μœΌλ‘œ 쑰회
7472
LocalDateTime.now()
@@ -94,9 +92,6 @@ private void updateCommitData(User user, long currentCommitCount, long newCommit
9492
// 2️⃣ Redis에 μ΅œμ‹  컀밋 개수 μ €μž₯ (3μ‹œκ°„ λ™μ•ˆ μœ μ§€)
9593
commitCacheService.updateCachedCommitCount(user.getUsername(), currentCommitCount);
9694

97-
// 3️⃣ λ©”μ‹œμ§€ 큐 전솑
98-
redpandaProducer.sendCommitUpdate(user.getUsername(), newCommitCount);
99-
10095
log.info("βœ… 컀밋 반영 μ™„λ£Œ - User: {}, New Commits: {}", user.getUsername(), newCommitCount);
10196
}
10297
}

β€Žsrc/main/java/cmf/commitField/domain/commit/sinceCommit/controller/SinceCommitController.javaβ€Ž

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22

33
import cmf.commitField.domain.commit.sinceCommit.dto.CommitAnalysisResponseDto;
44
import cmf.commitField.domain.commit.sinceCommit.dto.SinceCommitResponseDto;
5-
import cmf.commitField.domain.commit.sinceCommit.service.GithubService;
65
import cmf.commitField.domain.commit.sinceCommit.service.SinceCommitService;
76
import lombok.RequiredArgsConstructor;
87
import org.springframework.format.annotation.DateTimeFormat;
98
import org.springframework.http.ResponseEntity;
109
import org.springframework.web.bind.annotation.GetMapping;
11-
import org.springframework.web.bind.annotation.PathVariable;
1210
import org.springframework.web.bind.annotation.RequestParam;
1311
import org.springframework.web.bind.annotation.RestController;
1412

@@ -20,7 +18,6 @@
2018
@RequiredArgsConstructor
2119
public class SinceCommitController {
2220
private final SinceCommitService sinceCommitService;
23-
private final GithubService githubService;
2421

2522
@GetMapping("/api/github/commits-since")
2623
public ResponseEntity<List<SinceCommitResponseDto>> getCommits(
@@ -104,11 +101,4 @@ public ResponseEntity<CommitAnalysisResponseDto> getWinterSeasonCommits(
104101
return ResponseEntity.ok(analysis);
105102
}
106103

107-
// api ν…ŒμŠ€νŠΈ λ©”μ†Œλ“œ μΆ”κ°€
108-
@GetMapping("/api/commit-count/{username}")
109-
public ResponseEntity<Integer> getCommitCount(@PathVariable String username) {
110-
System.out.println("⚑ API μ—”λ“œν¬μΈνŠΈ 호좜: " + username);
111-
int commitCount = githubService.getUserCommitCount(username);
112-
return ResponseEntity.ok(commitCount);
113-
}
114104
}

β€Žsrc/main/java/cmf/commitField/domain/commit/sinceCommit/service/CommitCacheService.javaβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class CommitCacheService {
1414
private final StringRedisTemplate redisTemplate;
1515

1616
public Integer getCachedCommitCount(String username) {
17-
String key = "commit_active:" + username; // Redis ν‚€ 생성 (ex: commit:hongildong)
17+
String key = "commit_active:" + username; // Redis ν‚€ 생성
1818
String value = redisTemplate.opsForValue().get(key); // Redisμ—μ„œ κ°’ κ°€μ Έμ˜€κΈ°
1919

2020
if (value != null) {

β€Žsrc/main/java/cmf/commitField/domain/commit/sinceCommit/service/GithubService.javaβ€Ž

Lines changed: 0 additions & 70 deletions
This file was deleted.

β€Žsrc/main/java/cmf/commitField/domain/commit/totalCommit/service/TotalCommitService.javaβ€Ž

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,4 +213,43 @@ private StreakResult calculateStreaks(List<LocalDate> commitDates) {
213213

214214
return new StreakResult(currentStreak, maxStreak);
215215
}
216+
217+
// μ‹œκ°„λ³„ 컀밋 뢄석
218+
public TotalCommitResponseDto getUpdateCommits(String username, LocalDateTime since, LocalDateTime until) {
219+
String query = String.format("""
220+
query {
221+
user(login: "%s") {
222+
contributionsCollection(from: "%s", to: "%s") {
223+
commitContributionsByRepository {
224+
contributions(first: 100) {
225+
nodes {
226+
occurredAt # βœ… μ‹œκ°„ 정보 포함
227+
}
228+
}
229+
}
230+
}
231+
}
232+
}""", username, since.format(DateTimeFormatter.ISO_DATE_TIME), until.format(DateTimeFormatter.ISO_DATE_TIME));
233+
234+
Map<String, String> requestBody = Map.of("query", query);
235+
236+
TotalCommitGraphQLResponse response = webClient.post()
237+
.header("Authorization", "bearer " + PAT)
238+
.bodyValue(requestBody)
239+
.retrieve()
240+
.bodyToMono(TotalCommitGraphQLResponse.class)
241+
.block();
242+
243+
if (response == null || response.getData() == null || response.getData().getUser() == null) {
244+
throw new RuntimeException("Failed to fetch GitHub data");
245+
}
246+
247+
TotalCommitGraphQLResponse.ContributionsCollection contributions =
248+
response.getData().getUser().getContributionsCollection();
249+
250+
return new TotalCommitResponseDto(
251+
contributions.getTotalCommitContributions(),
252+
contributions.getRestrictedContributionsCount()
253+
);
254+
}
216255
}

β€Žsrc/main/java/cmf/commitField/domain/redpanda/KafkaConsumer.javaβ€Ž

Lines changed: 0 additions & 13 deletions
This file was deleted.

β€Žsrc/main/java/cmf/commitField/domain/redpanda/RedpandaProducer.javaβ€Ž

Lines changed: 0 additions & 28 deletions
This file was deleted.

β€Žsrc/main/java/cmf/commitField/domain/redpanda/commit/CommitConsumer.javaβ€Ž

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
Β (0)