Skip to content

Commit

Permalink
Merge pull request #53 from potenday-project/develop
Browse files Browse the repository at this point in the history
API_LOG 프로시저 생성
  • Loading branch information
HwangHoYoon authored Dec 18, 2023
2 parents 60d4945 + 8504db7 commit 75f0575
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
import com.chwipoClova.common.dto.Token;
import com.chwipoClova.common.entity.ApiLog;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.query.Procedure;

public interface ApiLogRepository extends JpaRepository<ApiLog, Long> {

@Procedure("API_LOG_SAVE")
void apiLogSave(Long userId, String apiUrl, String reqData, String resData, String message);
}
62 changes: 31 additions & 31 deletions src/main/java/com/chwipoClova/common/utils/ApiUtils.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.chwipoClova.common.utils;

import com.chwipoClova.common.dto.UserDetailsImpl;
import com.chwipoClova.common.entity.ApiLog;
import com.chwipoClova.common.exception.CommonException;
import com.chwipoClova.common.exception.ExceptionCode;
import com.chwipoClova.common.repository.ApiLogRepository;
Expand All @@ -19,7 +18,6 @@
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
Expand Down Expand Up @@ -69,17 +67,17 @@ public class ApiUtils {
@Value("${api.url.best}")
private String best;

@Transactional
public String callApi(URI apiUrl, HttpEntity<?> entity) {
public String callApi(URI apiUrl, String reqData, HttpEntity<?> entity) {
String resultData = null;
String resultMessage;
Long userId = null;
ResponseEntity<String> responseAsString = null;
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication.getPrincipal() instanceof UserDetailsImpl) {
userId = ((UserDetailsImpl) authentication.getPrincipal()).getUser().getUserId();
}
try {
ResponseEntity<String> responseAsString = restTemplate.exchange(apiUrl, HttpMethod.POST, entity, String.class);
responseAsString = restTemplate.exchange(apiUrl, HttpMethod.POST, entity, String.class);
log.info("responseAsString : " + responseAsString);
if (responseAsString == null) {
resultMessage = "API 결과 NULL";
Expand All @@ -104,12 +102,7 @@ public String callApi(URI apiUrl, HttpEntity<?> entity) {
}

// API 로그 적재
ApiLog apiLog = ApiLog.builder()
.userId(userId)
.apiUrl(apiUrl.toString())
.message(resultMessage)
.build();
apiLogRepository.save(apiLog);
apiLogRepository.apiLogSave(userId, apiUrl.toString(), reqData, responseAsString.toString(), resultMessage);

if (resultData == null) {
throw new CommonException(ExceptionCode.API_NULL.getMessage(), ExceptionCode.API_NULL.getCode());
Expand Down Expand Up @@ -137,7 +130,9 @@ public String getFilename(){
.toUri();
log.info("uri : " + apiUrl);

return callApi(apiUrl, requestEntity);
String reqData = "file : " + file.getOriginalFilename();

return callApi(apiUrl, reqData, requestEntity);
}

public String countToken(String summary) {
Expand All @@ -151,7 +146,10 @@ public String countToken(String summary) {
.toUri();
log.info("uri : " + apiUrl);
log.info("summary : " + summary);
String count = callApi(apiUrl, requestEntity);

String reqData = "summary : " + summary;

String count = callApi(apiUrl, reqData, requestEntity);

if (!org.apache.commons.lang3.StringUtils.isNumeric(count)) {
new CommonException(ExceptionCode.API_TOKEN_COUNT_FAIL.getMessage(), ExceptionCode.API_TOKEN_COUNT_FAIL.getCode());
Expand Down Expand Up @@ -182,7 +180,9 @@ public String summaryResume(String resumeTxt) {
log.info("uri : " + apiUrl);
log.info("resumeTxt : " + resumeTxt);

ApiRes response = callApiForJson(apiUrl, requestEntity);
String reqData = "resumeTxt : " + resumeTxt;

ApiRes response = callApiForJson(apiUrl, reqData, requestEntity);
return response.getResult().getMessage().getContent();
}

Expand All @@ -198,7 +198,9 @@ public String summaryRecruit(String recruitTxt) {
log.info("uri : " + apiUrl);
log.info("recruitTxt : " + recruitTxt);

ApiRes response = callApiForJson(apiUrl, requestEntity);
String reqData = "recruitTxt : " + recruitTxt;

ApiRes response = callApiForJson(apiUrl, reqData, requestEntity);
return response.getResult().getMessage().getContent();
}

Expand All @@ -218,7 +220,9 @@ public String question(String recruitSummary, String resumeSummary) {
log.info("recruitSummary : " + recruitSummary);
log.info("resumeSummary : " + resumeSummary);

ApiRes response = callApiForJson(apiUrl, requestEntity);
String reqData = "recruitSummary : " + recruitSummary + "######" + " resumeSummary : " + resumeSummary;

ApiRes response = callApiForJson(apiUrl, reqData, requestEntity);
return response.getResult().getMessage().getContent();
}

Expand All @@ -234,7 +238,9 @@ public String feel(String allQa) {
log.info("uri : " + apiUrl);
log.info("feel : " + allQa);

ApiRes response = callApiForJson(apiUrl, requestEntity);
String reqData = "feel : " + allQa;

ApiRes response = callApiForJson(apiUrl, reqData, requestEntity);
return response.getResult().getMessage().getContent();
}

Expand All @@ -250,7 +256,9 @@ public String keyword(String qa) {
log.info("uri : " + apiUrl);
log.info("keyword : " + qa);

ApiRes response = callApiForJson(apiUrl, requestEntity);
String reqData = "keyword : " + qa;

ApiRes response = callApiForJson(apiUrl, reqData, requestEntity);
return response.getResult().getMessage().getContent();
}

Expand All @@ -272,12 +280,14 @@ public String best(String question, String answer) {
log.info("question : " + question);
log.info("answer : " + answer);

ApiRes response = callApiForJson(apiUrl, requestEntity);
String reqData = "question : " + question + "######" + " answer : " + answer;

ApiRes response = callApiForJson(apiUrl, reqData, requestEntity);
return response.getResult().getMessage().getContent();
}

public ApiRes callApiForJson(URI apiUrl, HttpEntity<?> entity) {
return josnConvertToVo(callApi(apiUrl, entity));
public ApiRes callApiForJson(URI apiUrl, String reqData, HttpEntity<?> entity) {
return josnConvertToVo(callApi(apiUrl, reqData, entity));
}

private <T> T xmlConvertToVo(String xml, Class<T> voClass) throws JAXBException {
Expand Down Expand Up @@ -306,14 +316,4 @@ private ApiRes josnConvertToVo(String json) {
throw new CommonException(ExceptionCode.API_JSON_MAPPING_FAIL.getMessage(), ExceptionCode.API_JSON_MAPPING_FAIL.getCode());
}
}

private String retryApi(URI apiUrl, HttpEntity<String> entity) {
if (retryCnt <=3) {
log.info("retryApi : " + retryCnt);
retryCnt++;
return callApi(apiUrl, entity);
} else {
return null;
}
}
}

0 comments on commit 75f0575

Please sign in to comment.