Skip to content

Commit e61494a

Browse files
committed
feat: return recursive result
1 parent 53f3d41 commit e61494a

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

backend/src/main/java/ch/xxx/aidoclibchat/adapter/client/GithubRestClient.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
package ch.xxx.aidoclibchat.adapter.client;
1414

1515
import java.util.Arrays;
16+
import java.util.LinkedList;
17+
import java.util.List;
1618

1719
import org.springframework.stereotype.Component;
1820
import org.springframework.web.client.RestClient;
@@ -34,6 +36,6 @@ public GithubSource readSourceFile(String url) {
3436
var resultLines = result.lines().toList();
3537
var sourcePackage = resultLines.stream().filter(myLine -> myLine.contains("package")).findFirst().orElseThrow()
3638
.trim().split(" ")[1].split(";")[0].trim();
37-
return new GithubSource(sourceName, sourcePackage, resultLines);
39+
return new GithubSource(sourceName, sourcePackage, resultLines, new LinkedList<GithubSource>());
3840
}
3941
}

backend/src/main/java/ch/xxx/aidoclibchat/adapter/controller/CodeGenerationController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ public CodeGenerationController(CodeGenerationService codeGenerationService) {
3434

3535
@GetMapping("/test")
3636
public GithubSource getGenerateTests(@RequestParam("url") String url) {
37-
return this.codeGenerationService.generateTests(URLDecoder.decode(url, StandardCharsets.UTF_8));
37+
return this.codeGenerationService.generateTests(URLDecoder.decode(url, StandardCharsets.UTF_8), true);
3838
}
3939
}

backend/src/main/java/ch/xxx/aidoclibchat/domain/model/dto/GithubSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@
1414

1515
import java.util.List;
1616

17-
public record GithubSource(String sourceName, String sourcePackage, List<String> lines) {
17+
public record GithubSource(String sourceName, String sourcePackage, List<String> lines, List<GithubSource> dependencies) {
1818

1919
}

backend/src/main/java/ch/xxx/aidoclibchat/usecase/service/CodeGenerationService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,21 @@ public CodeGenerationService(GithubClient githubClient) {
3232
this.githubClient = githubClient;
3333
}
3434

35-
public GithubSource generateTests(String url) {
35+
public GithubSource generateTests(String url, final boolean referencedSources) {
3636
final var myUrl = url.replace("https://github.com", GithubClient.GITHUB_BASE_URL).replace("/blob", "");
3737
var result = this.githubClient.readSourceFile(myUrl);
3838
var isComment = new AtomicBoolean(false);
3939
var sourceLines = result.lines().stream().map(myLine -> myLine.replaceAll("[\t]", "").trim())
4040
.filter(myLine -> !myLine.isBlank()).filter(myLine -> filterComments(isComment, myLine)).toList();
4141
final var basePackage = List.of(result.sourcePackage().split("\\.")).stream().limit(2)
4242
.collect(Collectors.joining("."));
43-
var importLines = sourceLines.stream().filter(myLine -> myLine.contains("import"))
43+
var importLines = sourceLines.stream().filter(x -> referencedSources).filter(myLine -> myLine.contains("import"))
4444
.filter(myLine -> myLine.contains(basePackage))
4545
.map(myLine -> String.format("%s%s%s", myUrl.split(basePackage.replace(".", "/"))[0].trim(),
4646
myLine.split("import")[1].split(";")[0].replaceAll("\\.", "/").trim(), ".java"))
47-
.toList();
48-
importLines.forEach(myLine -> LOGGER.info(myLine));
49-
return new GithubSource(result.sourceName(), result.sourcePackage(), sourceLines);
47+
.map(myLine -> this.generateTests(myLine, false)).toList();
48+
// importLines.forEach(myLine -> LOGGER.info(myLine));
49+
return new GithubSource(result.sourceName(), result.sourcePackage(), sourceLines, importLines);
5050
}
5151

5252
private boolean filterComments(AtomicBoolean isComment, String myLine) {

0 commit comments

Comments
 (0)