Skip to content

Commit ca1edf2

Browse files
Adrià Maneromikededo
authored andcommitted
fix: refactor comment use case and GitHubRepository
1 parent b87bc0b commit ca1edf2

File tree

3 files changed

+42
-21
lines changed

3 files changed

+42
-21
lines changed

src/main/java/io/pakland/mdas/githubstats/application/external/FetchCommentsFromPullRequest.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import io.pakland.mdas.githubstats.application.exceptions.HttpException;
44
import io.pakland.mdas.githubstats.domain.entity.Comment;
5+
import io.pakland.mdas.githubstats.domain.entity.PullRequest;
6+
import io.pakland.mdas.githubstats.domain.entity.Repository;
57
import io.pakland.mdas.githubstats.domain.repository.CommentExternalRepository;
68

79
import java.util.ArrayList;
@@ -14,16 +16,20 @@ public FetchCommentsFromPullRequest(CommentExternalRepository commentExternalRep
1416
this.commentExternalRepository = commentExternalRepository;
1517
}
1618

17-
public List<Comment> execute(
18-
String repositoryOwner, String repositoryName, Integer pullRequestNumber)
19-
throws HttpException {
20-
int page = 1;
19+
public List<Comment> execute(PullRequest pullRequest) throws HttpException {
20+
Integer page = 1;
2121
List<Comment> commentList = new ArrayList<>();
22-
int responseResults;
22+
Integer responseResults;
23+
Repository repository = pullRequest.getRepository();
2324
do {
24-
List<Comment> apiResults = this.commentExternalRepository.fetchCommentsFromPullRequest(
25-
repositoryOwner, repositoryName, pullRequestNumber, page, 100
26-
);
25+
CommentExternalRepository.FetchCommentsFromPullRequestRequest request = CommentExternalRepository.FetchCommentsFromPullRequestRequest.builder()
26+
.repositoryOwner(repository.getOwnerLogin())
27+
.repositoryName(repository.getName())
28+
.pullRequestNumber(pullRequest.getNumber())
29+
.page(page)
30+
.perPage(100)
31+
.build();
32+
List<Comment> apiResults = this.commentExternalRepository.fetchCommentsFromPullRequest(request);
2733
commentList.addAll(apiResults);
2834
responseResults = apiResults.size();
2935
page++;

src/main/java/io/pakland/mdas/githubstats/domain/repository/CommentExternalRepository.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,26 @@
22

33
import io.pakland.mdas.githubstats.application.exceptions.HttpException;
44
import io.pakland.mdas.githubstats.domain.entity.Comment;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Builder;
7+
import lombok.Getter;
8+
import lombok.NoArgsConstructor;
59

610
import java.util.List;
711

812
public interface CommentExternalRepository {
9-
public List<Comment> fetchCommentsFromPullRequest(
10-
String repositoryOwner, String repositoryName, Integer pullRequestNumber, Integer page, Integer perPage) throws HttpException;
13+
14+
public List<Comment> fetchCommentsFromPullRequest(FetchCommentsFromPullRequestRequest request) throws HttpException;
15+
16+
@NoArgsConstructor
17+
@AllArgsConstructor
18+
@Builder
19+
@Getter
20+
public static class FetchCommentsFromPullRequestRequest {
21+
private String repositoryOwner;
22+
private String repositoryName;
23+
private Integer pullRequestNumber;
24+
private Integer page;
25+
private Integer perPage;
26+
}
1127
}

src/main/java/io/pakland/mdas/githubstats/infrastructure/github/repository/CommentGitHubRepository.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import io.pakland.mdas.githubstats.domain.lib.InternalCaching;
77
import io.pakland.mdas.githubstats.domain.repository.CommentExternalRepository;
88
import io.pakland.mdas.githubstats.infrastructure.github.model.GitHubCommentDTO;
9-
import java.util.*;
9+
import java.util.List;
1010
import org.slf4j.Logger;
1111
import org.slf4j.LoggerFactory;
1212
import org.springframework.web.reactive.function.client.WebClientResponseException;
@@ -23,19 +23,18 @@ public CommentGitHubRepository(WebClientConfiguration webClientConfiguration) {
2323
}
2424

2525
@Override
26-
public List<Comment> fetchCommentsFromPullRequest(
27-
String repositoryOwner, String repositoryName, Integer pullRequestNumber, Integer page,
28-
Integer perPage)
26+
public List<Comment> fetchCommentsFromPullRequest(FetchCommentsFromPullRequestRequest request)
2927
throws HttpException {
30-
String query = String.format("/repos/%s/%s/pulls/%s/comments?%s", repositoryOwner,
31-
repositoryName, pullRequestNumber, getRequestParams(page, perPage));
32-
List<Comment> maybeResult = cache.get(query);
33-
if (maybeResult != null) {
34-
return maybeResult;
35-
}
28+
String query = String.format("/repos/%s/%s/pulls/%s/comments?%s",
29+
request.getRepositoryOwner(),
30+
request.getRepositoryName(),
31+
request.getPullRequestNumber(),
32+
getRequestParams(request.getPage(), request.getPerPage())
33+
);
3634

3735
try {
38-
logger.info(" - Fetching comments from pull request: " + pullRequestNumber);
36+
logger.info(
37+
" - Fetching comments from pull request: " + request.getPullRequestNumber());
3938
List<Comment> result = this.webClientConfiguration.getWebClient().get()
4039
.uri(query)
4140
.retrieve()

0 commit comments

Comments
 (0)