From 5770faadc49f917018dfafc9fc0fbcedb98ba2dd Mon Sep 17 00:00:00 2001 From: npole0103 Date: Sun, 11 Sep 2022 23:55:01 +0900 Subject: [PATCH 1/6] fix: Modify all httpStatusCode 200 --- .../java/kr/markdown/alreadyme/controller/AppController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/markdown/alreadyme/controller/AppController.java b/src/main/java/kr/markdown/alreadyme/controller/AppController.java index 1a5c4c8..6b47a85 100644 --- a/src/main/java/kr/markdown/alreadyme/controller/AppController.java +++ b/src/main/java/kr/markdown/alreadyme/controller/AppController.java @@ -19,18 +19,19 @@ public class AppController { public final AppService service; @PostMapping - @ResponseStatus(HttpStatus.CREATED) + @ResponseStatus(HttpStatus.OK) public ReadmeItem post(@Valid @RequestBody Create createDto) throws Exception { return service.create(createDto); } @PostMapping("download") + @ResponseStatus(HttpStatus.OK) public ObjectUrl download(@Valid @RequestBody Request requestDto) throws Exception { return service.download(requestDto); } @PostMapping("pull-request") - @ResponseStatus(HttpStatus.CREATED) + @ResponseStatus(HttpStatus.OK) public void pullRequest(@Valid @RequestBody Request requestDto) throws Exception { service.pullRequest(requestDto); } From 6e1602a0f41fa4fcad6f85b3398fcc444cf17c49 Mon Sep 17 00:00:00 2001 From: npole0103 Date: Sun, 11 Sep 2022 23:57:10 +0900 Subject: [PATCH 2/6] fix: Fixed error that was accumulated previous code --- .../kr/markdown/alreadyme/service/AppService.java | 5 +++++ .../kr/markdown/alreadyme/utils/FileScanUtil.java | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/kr/markdown/alreadyme/service/AppService.java b/src/main/java/kr/markdown/alreadyme/service/AppService.java index 8e50aed..0958c02 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AppService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AppService.java @@ -1,5 +1,7 @@ package kr.markdown.alreadyme.service; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; import kr.markdown.alreadyme.domain.dto.ReadmeItemDto.Create; import kr.markdown.alreadyme.domain.dto.ReadmeItemDto.Request; import kr.markdown.alreadyme.domain.dto.ReadmeItemDto.ObjectUrl; @@ -57,8 +59,11 @@ public ReadmeItem create(Create createDto) throws Exception { Git git = JGitUtil.cloneRepository(githubBotUrl); //FileScan + ObjectMapper objectMapper = new ObjectMapper(); + ObjectNode objectNode = objectMapper.createObjectNode(); File gitDirectory = git.getRepository().getDirectory(); String requestJsonData = FileScanUtil.createJson( + objectNode, new File(gitDirectory.getPath() + File.separator + "..").getCanonicalPath(), gitDirectory.getParentFile().getName() ); diff --git a/src/main/java/kr/markdown/alreadyme/utils/FileScanUtil.java b/src/main/java/kr/markdown/alreadyme/utils/FileScanUtil.java index b0a63be..c776f83 100644 --- a/src/main/java/kr/markdown/alreadyme/utils/FileScanUtil.java +++ b/src/main/java/kr/markdown/alreadyme/utils/FileScanUtil.java @@ -12,13 +12,11 @@ import java.util.Set; public class FileScanUtil { - private static ObjectMapper objectMapper = new ObjectMapper(); - private static ObjectNode objectNode = objectMapper.createObjectNode(); private static final Set extSet = new HashSet<>(Arrays.asList( - ".c", ".h", ".cs", ".cpp", ".hpp", ".c++", ".h++", ".cc", ".hh", ".C", ".H", ".java", ".js", ".lua", ".md", ".markdown", ".php", ".php3", ".php4", ".php5", ".phps", ".phpt", ".pl", ".pm", ".pod", ".perl", ".py", ".rb", ".rs", ".ts", ".tsx", ".vb" + ".c", ".h", ".cs", ".cpp", ".hpp", ".c++", ".h++", ".cc", ".hh", ".C", ".H", ".java", ".js", ".lua", ".md", ".markdown", ".php", ".php3", ".php4", ".php5", ".phps", ".phpt", ".pl", ".pm", ".pod", ".perl", ".py", ".rb", ".rs", ".ts", ".tsx", ".vb", ".kt" )); - public static String createJson(String localDirPath, String directoryName) throws IOException { + public static String createJson(ObjectNode objectNode, String localDirPath, String directoryName) throws IOException { String userDirPath = System.getProperty("user.dir"); File path = new File(localDirPath); @@ -33,10 +31,11 @@ public static String createJson(String localDirPath, String directoryName) throw .replace("\\", "/"), FileUtils.readFileToString(fileList[i], "UTF-8") ); - } else if (fileList[i].isDirectory()){ - createJson(fileList[i].getPath(), directoryName); + } else if (fileList[i].isDirectory()) { + createJson(objectNode, fileList[i].getPath(), directoryName); } } + return objectNode.toString(); } From 82550c5ba664d0cababd80cb1cdc1b2cd6de844c Mon Sep 17 00:00:00 2001 From: npole0103 Date: Sun, 11 Sep 2022 23:57:54 +0900 Subject: [PATCH 3/6] feat: Add badRequest message --- .../controller/ExceptionController.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/main/java/kr/markdown/alreadyme/controller/ExceptionController.java diff --git a/src/main/java/kr/markdown/alreadyme/controller/ExceptionController.java b/src/main/java/kr/markdown/alreadyme/controller/ExceptionController.java new file mode 100644 index 0000000..1303913 --- /dev/null +++ b/src/main/java/kr/markdown/alreadyme/controller/ExceptionController.java @@ -0,0 +1,22 @@ +package kr.markdown.alreadyme.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@ControllerAdvice +public class ExceptionController { + @ExceptionHandler({MethodArgumentNotValidException.class}) + public ResponseEntity badRequestHandler(MethodArgumentNotValidException e) { + Map error = new HashMap<>(); + error.put("timestamp", new Date()); + error.put("code", "400"); + error.put("message", "This github URL is invalid"); + return ResponseEntity.badRequest().body(error); + } +} From 6ee084db6f1f37b508decf7496840cf303ece2ae Mon Sep 17 00:00:00 2001 From: npole0103 Date: Mon, 12 Sep 2022 00:06:52 +0900 Subject: [PATCH 4/6] fix: Delete gitFork process --- src/main/java/kr/markdown/alreadyme/service/AppService.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/kr/markdown/alreadyme/service/AppService.java b/src/main/java/kr/markdown/alreadyme/service/AppService.java index 0958c02..d50dff7 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AppService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AppService.java @@ -52,11 +52,8 @@ public class AppService { @Transactional public ReadmeItem create(Create createDto) throws Exception { - //GitFork - String githubBotUrl = GithubApiUtil.gitFork(createDto.getGithubOriginalUrl(), token); - //GitClone - Git git = JGitUtil.cloneRepository(githubBotUrl); + Git git = JGitUtil.cloneRepository(createDto.getGithubOriginalUrl()); //FileScan ObjectMapper objectMapper = new ObjectMapper(); @@ -71,7 +68,6 @@ public ReadmeItem create(Create createDto) throws Exception { //Delete Repository JGitUtil.close(git); FileUtils.deleteDirectory(new File(git.getRepository().getDirectory().getParentFile().getPath()));; - GithubApiUtil.gitDeleteRemoteRepository(githubBotUrl, token); //Get readmeText by ai-server String readmeText = aiService.getReadmeText(requestJsonData, createDto.getGithubOriginalUrl()); From ed27cb872c6d200e23843a3745f0f449df6a522a Mon Sep 17 00:00:00 2001 From: npole0103 Date: Mon, 12 Sep 2022 00:19:13 +0900 Subject: [PATCH 5/6] fix: Remove .git from githubOriginalUrl --- .../kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java | 2 +- .../java/kr/markdown/alreadyme/service/AppService.java | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java b/src/main/java/kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java index 55c980a..2cf3ca0 100644 --- a/src/main/java/kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java +++ b/src/main/java/kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java @@ -17,7 +17,7 @@ public interface ReadmeItemDto { @NoArgsConstructor class Create { @NotBlank - @Pattern(regexp = "(?:https://)github.com[:/](.*).git") + @Pattern(regexp = "(?:https://)github.com[:/](.*)") private String githubOriginalUrl; } diff --git a/src/main/java/kr/markdown/alreadyme/service/AppService.java b/src/main/java/kr/markdown/alreadyme/service/AppService.java index d50dff7..0c4becf 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AppService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AppService.java @@ -52,8 +52,10 @@ public class AppService { @Transactional public ReadmeItem create(Create createDto) throws Exception { + String gitUrl = createDto.getGithubOriginalUrl()+".git"; + //GitClone - Git git = JGitUtil.cloneRepository(createDto.getGithubOriginalUrl()); + Git git = JGitUtil.cloneRepository(gitUrl); //FileScan ObjectMapper objectMapper = new ObjectMapper(); @@ -70,11 +72,11 @@ public ReadmeItem create(Create createDto) throws Exception { FileUtils.deleteDirectory(new File(git.getRepository().getDirectory().getParentFile().getPath()));; //Get readmeText by ai-server - String readmeText = aiService.getReadmeText(requestJsonData, createDto.getGithubOriginalUrl()); + String readmeText = aiService.getReadmeText(requestJsonData, gitUrl); //Create ReadmeItem ReadmeItem readmeItem = ReadmeItem.builder() - .githubOriginalUrl(createDto.getGithubOriginalUrl()) + .githubOriginalUrl(gitUrl) .readmeText(readmeText) .createdTime(LocalDateTime.now()) .build(); From 7f3d41af11c15014cec6550952bc3d53f92fd4a2 Mon Sep 17 00:00:00 2001 From: npole0103 Date: Mon, 12 Sep 2022 00:19:40 +0900 Subject: [PATCH 6/6] feat: Add getReadmeText in AiServer --- .../markdown/alreadyme/service/AiService.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/kr/markdown/alreadyme/service/AiService.java b/src/main/java/kr/markdown/alreadyme/service/AiService.java index 14a7470..24bd29a 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AiService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AiService.java @@ -1,19 +1,31 @@ package kr.markdown.alreadyme.service; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.io.IOException; + @Service @RequiredArgsConstructor @Log4j2 public class AiService { - public String getReadmeText(String requestJsonData, String githubOriginalUrl) throws JsonProcessingException { + @Value("${ai-server.host}") + private String aiServerHost; + + public String getReadmeText(String requestJsonData, String githubOriginalUrl) throws IOException { + //requestJsonData ObjectMapper objectMapper = new ObjectMapper(); ObjectNode objectNode = objectMapper.createObjectNode(); @@ -23,9 +35,13 @@ public String getReadmeText(String requestJsonData, String githubOriginalUrl) th objectNode.set("data", jsonDataNode); //httpClient + HttpClient httpClient = HttpClientBuilder.create().build(); + HttpPost httpPost = new HttpPost(aiServerHost); + httpPost.setHeader("Content-type", "application/json"); - //response.toString() + httpPost.setEntity(new StringEntity(objectNode.toString(), "UTF-8")); + HttpResponse httpResponse = httpClient.execute(httpPost); - return "create readme.md success"; + return EntityUtils.toString(httpResponse.getEntity()); } }