Skip to content

Commit

Permalink
feat: Add UpdateReadmeText logic and AiController
Browse files Browse the repository at this point in the history
  • Loading branch information
npole0103 committed Oct 12, 2022
1 parent e0d9f34 commit f0d1a56
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 3 deletions.
24 changes: 24 additions & 0 deletions src/main/java/kr/markdown/alreadyme/controller/AiController.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
13 changes: 13 additions & 0 deletions src/main/java/kr/markdown/alreadyme/domain/dto/ReadmeItemDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,8 @@ public class ReadmeItem {
public void setObjectUrl(String objectUrl) {
this.objectUrl = objectUrl;
}

public void setReadmeText(String readmeText) {
this.readmeText = readmeText;
}
}
25 changes: 22 additions & 3 deletions src/main/java/kr/markdown/alreadyme/service/AiService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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<ReadmeItem> optionalReadmeItem = readmeItemRepository.findById(id);
return optionalReadmeItem.orElseThrow(() -> new ResponseStatusException(
HttpStatus.NOT_FOUND, String.format("ReadmeItem id %d was not found", id)));
}
}

0 comments on commit f0d1a56

Please sign in to comment.