From e111731b21108ce0b40736b337ee92a48b67d85b Mon Sep 17 00:00:00 2001 From: npole0103 Date: Wed, 12 Oct 2022 12:41:35 +0900 Subject: [PATCH 1/6] fix: Modify creating README Logic --- .../java/kr/markdown/alreadyme/service/AiService.java | 7 +++---- .../kr/markdown/alreadyme/service/AppService.java | 11 ++++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/kr/markdown/alreadyme/service/AiService.java b/src/main/java/kr/markdown/alreadyme/service/AiService.java index 24bd29a..e9bb334 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AiService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AiService.java @@ -23,12 +23,13 @@ public class AiService { @Value("${ai-server.host}") private String aiServerHost; - public String getReadmeText(String requestJsonData, String githubOriginalUrl) throws IOException { + public void postReadmeText(Long id, String githubOriginalUrl, String requestJsonData) throws IOException { //requestJsonData ObjectMapper objectMapper = new ObjectMapper(); ObjectNode objectNode = objectMapper.createObjectNode(); + objectNode.put("id", id); objectNode.put("githubOriginalUrl", githubOriginalUrl); ObjectNode jsonDataNode = (ObjectNode) new ObjectMapper().readTree(requestJsonData); @@ -40,8 +41,6 @@ public String getReadmeText(String requestJsonData, String githubOriginalUrl) th httpPost.setHeader("Content-type", "application/json"); httpPost.setEntity(new StringEntity(objectNode.toString(), "UTF-8")); - HttpResponse httpResponse = httpClient.execute(httpPost); - - return EntityUtils.toString(httpResponse.getEntity()); + httpClient.execute(httpPost); } } diff --git a/src/main/java/kr/markdown/alreadyme/service/AppService.java b/src/main/java/kr/markdown/alreadyme/service/AppService.java index cf6a8d9..477558c 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AppService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AppService.java @@ -72,17 +72,18 @@ public ReadmeItem create(Create createDto) throws Exception { JGitUtil.close(git); FileUtils.deleteDirectory(new File(git.getRepository().getDirectory().getParentFile().getPath()));; - //Get readmeText by ai-server - String readmeText = aiService.getReadmeText(requestJsonData, gitUrl); - //Create ReadmeItem ReadmeItem readmeItem = ReadmeItem.builder() .githubOriginalUrl(gitUrl) - .readmeText(readmeText) .createdTime(LocalDateTime.now()) .build(); + ReadmeItem newReadmeItem = readmeItemRepository.save(readmeItem); + newReadmeItem = findReadmeItemThrowException(newReadmeItem.getId()); + + //POST call readmeText by ai-server + aiService.postReadmeText(newReadmeItem.getId(), gitUrl, requestJsonData); - return readmeItemRepository.save(readmeItem); + return readmeItemRepository.save(newReadmeItem); } @Transactional From e0d9f34d794aac4543150c542b223767d827f103 Mon Sep 17 00:00:00 2001 From: npole0103 Date: Wed, 12 Oct 2022 13:45:18 +0900 Subject: [PATCH 2/6] chore: Modify method naming in AiService --- src/main/java/kr/markdown/alreadyme/service/AppService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/kr/markdown/alreadyme/service/AppService.java b/src/main/java/kr/markdown/alreadyme/service/AppService.java index 477558c..0ae724a 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AppService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AppService.java @@ -81,7 +81,7 @@ public ReadmeItem create(Create createDto) throws Exception { newReadmeItem = findReadmeItemThrowException(newReadmeItem.getId()); //POST call readmeText by ai-server - aiService.postReadmeText(newReadmeItem.getId(), gitUrl, requestJsonData); + aiService.requestReadmeText(newReadmeItem.getId(), gitUrl, requestJsonData); return readmeItemRepository.save(newReadmeItem); } From f0d1a5682fcec018483597d33fc671619beae602 Mon Sep 17 00:00:00 2001 From: npole0103 Date: Wed, 12 Oct 2022 13:52:29 +0900 Subject: [PATCH 3/6] feat: Add UpdateReadmeText logic and AiController --- .../alreadyme/controller/AiController.java | 24 ++++++++++++++++++ .../alreadyme/domain/dto/ReadmeItemDto.java | 13 ++++++++++ .../alreadyme/domain/model/ReadmeItem.java | 4 +++ .../markdown/alreadyme/service/AiService.java | 25 ++++++++++++++++--- 4 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 src/main/java/kr/markdown/alreadyme/controller/AiController.java diff --git a/src/main/java/kr/markdown/alreadyme/controller/AiController.java b/src/main/java/kr/markdown/alreadyme/controller/AiController.java new file mode 100644 index 0000000..86053c3 --- /dev/null +++ b/src/main/java/kr/markdown/alreadyme/controller/AiController.java @@ -0,0 +1,24 @@ +package kr.markdown.alreadyme.controller; + +import kr.markdown.alreadyme.domain.dto.ReadmeItemDto; +import kr.markdown.alreadyme.domain.model.ReadmeItem; +import kr.markdown.alreadyme.service.AiService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +@RestController +@RequestMapping("api/v1/ai") +@CrossOrigin(origins = "*") +@RequiredArgsConstructor +public class AiController { + private final AiService service; + + @PutMapping + @ResponseStatus(HttpStatus.OK) + public ReadmeItem post(@Valid @RequestBody ReadmeItemDto.UpdateReadmeText updateDto) throws Exception { + return service.responseReadmeText(updateDto); + } +} 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 2cf3ca0..94ae7b4 100644 --- a/src/main/java/kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java +++ b/src/main/java/kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java @@ -41,6 +41,19 @@ class ObjectUrl { private String objectUrl; } + @Getter + @Setter + @Builder + @AllArgsConstructor + @NoArgsConstructor + class UpdateReadmeText { + @NotNull + private Long id; + + @NotBlank + private String readmeText; + } + @Getter @Setter @Builder diff --git a/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java b/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java index 95b4693..3cfa7ee 100644 --- a/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java +++ b/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java @@ -36,4 +36,8 @@ public class ReadmeItem { public void setObjectUrl(String objectUrl) { this.objectUrl = objectUrl; } + + public void setReadmeText(String readmeText) { + this.readmeText = readmeText; + } } diff --git a/src/main/java/kr/markdown/alreadyme/service/AiService.java b/src/main/java/kr/markdown/alreadyme/service/AiService.java index e9bb334..36ff184 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AiService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AiService.java @@ -2,28 +2,34 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; +import kr.markdown.alreadyme.domain.dto.ReadmeItemDto.UpdateReadmeText; +import kr.markdown.alreadyme.domain.model.ReadmeItem; +import kr.markdown.alreadyme.repository.ReadmeItemRepository; 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.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.web.server.ResponseStatusException; import java.io.IOException; +import java.util.Optional; @Service @RequiredArgsConstructor @Log4j2 public class AiService { + private final ReadmeItemRepository readmeItemRepository; + @Value("${ai-server.host}") private String aiServerHost; - public void postReadmeText(Long id, String githubOriginalUrl, String requestJsonData) throws IOException { + public void requestReadmeText(Long id, String githubOriginalUrl, String requestJsonData) throws IOException { //requestJsonData ObjectMapper objectMapper = new ObjectMapper(); @@ -43,4 +49,17 @@ public void postReadmeText(Long id, String githubOriginalUrl, String requestJson httpPost.setEntity(new StringEntity(objectNode.toString(), "UTF-8")); httpClient.execute(httpPost); } + + public ReadmeItem responseReadmeText(UpdateReadmeText updateDto) { + ReadmeItem readmeItem = findReadmeItemThrowException(updateDto.getId()); + readmeItem.setReadmeText(updateDto.getReadmeText()); + + return readmeItemRepository.save(readmeItem); + } + + private ReadmeItem findReadmeItemThrowException(Long id) { + Optional optionalReadmeItem = readmeItemRepository.findById(id); + return optionalReadmeItem.orElseThrow(() -> new ResponseStatusException( + HttpStatus.NOT_FOUND, String.format("ReadmeItem id %d was not found", id))); + } } From d5b3533d1c6e836aaa60d64bfa017d4e419662d2 Mon Sep 17 00:00:00 2001 From: npole0103 Date: Wed, 12 Oct 2022 13:56:53 +0900 Subject: [PATCH 4/6] fix: Allow nullable to readmeText Column --- .../java/kr/markdown/alreadyme/domain/model/ReadmeItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java b/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java index 3cfa7ee..24204b4 100644 --- a/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java +++ b/src/main/java/kr/markdown/alreadyme/domain/model/ReadmeItem.java @@ -23,7 +23,7 @@ public class ReadmeItem { @NotBlank private String githubOriginalUrl; - @NotBlank + @Nullable @Column(columnDefinition = "MEDIUMTEXT") private String readmeText; From 1b33d29aff9cd70db2f4f8b73690189567989492 Mon Sep 17 00:00:00 2001 From: npole0103 Date: Wed, 12 Oct 2022 16:55:16 +0900 Subject: [PATCH 5/6] chore: Modify PUT URL --- .../java/kr/markdown/alreadyme/controller/AiController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/kr/markdown/alreadyme/controller/AiController.java b/src/main/java/kr/markdown/alreadyme/controller/AiController.java index 86053c3..f5869cc 100644 --- a/src/main/java/kr/markdown/alreadyme/controller/AiController.java +++ b/src/main/java/kr/markdown/alreadyme/controller/AiController.java @@ -16,7 +16,7 @@ public class AiController { private final AiService service; - @PutMapping + @PutMapping("readme") @ResponseStatus(HttpStatus.OK) public ReadmeItem post(@Valid @RequestBody ReadmeItemDto.UpdateReadmeText updateDto) throws Exception { return service.responseReadmeText(updateDto); From a1d3884d28fcda03df2c34f3faeb770e14543cff Mon Sep 17 00:00:00 2001 From: npole0103 Date: Mon, 17 Oct 2022 12:52:25 +0900 Subject: [PATCH 6/6] fix: Modify id property naming --- src/main/java/kr/markdown/alreadyme/service/AiService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/kr/markdown/alreadyme/service/AiService.java b/src/main/java/kr/markdown/alreadyme/service/AiService.java index 36ff184..68e8bc9 100644 --- a/src/main/java/kr/markdown/alreadyme/service/AiService.java +++ b/src/main/java/kr/markdown/alreadyme/service/AiService.java @@ -35,7 +35,7 @@ public void requestReadmeText(Long id, String githubOriginalUrl, String requestJ ObjectMapper objectMapper = new ObjectMapper(); ObjectNode objectNode = objectMapper.createObjectNode(); - objectNode.put("id", id); + objectNode.put("requestId", id); objectNode.put("githubOriginalUrl", githubOriginalUrl); ObjectNode jsonDataNode = (ObjectNode) new ObjectMapper().readTree(requestJsonData);