Merge 1806 code of vid-common
[vid.git] / vid-app-common / src / main / java / org / onap / vid / services / AuditServiceImpl.java
1 package org.onap.vid.services;
2
3 import com.fasterxml.jackson.core.JsonParseException;
4 import com.fasterxml.jackson.databind.ObjectMapper;
5 import org.apache.commons.lang3.StringUtils;
6 import org.onap.vid.exceptions.GenericUncheckedException;
7 import org.springframework.stereotype.Service;
8
9 import javax.inject.Inject;
10 import java.io.IOException;
11 import java.util.UUID;
12
13
14 @Service
15 public class AuditServiceImpl implements AuditService{
16
17     @Inject
18     private AsyncInstantiationBusinessLogic asyncInstantiationBL;
19
20     @Override
21     public void setFailedAuditStatusFromMso(UUID jobUuid, String requestId, int statusCode, String msoResponse){
22         final String failedMsoRequestStatus = "FAILED";
23         String additionalInfo = formatExceptionAdditionalInfo(statusCode, msoResponse);
24         asyncInstantiationBL.auditMsoStatus(jobUuid, failedMsoRequestStatus, requestId, additionalInfo);
25     }
26
27     private String formatExceptionAdditionalInfo(int statusCode, String msoResponse) {
28         String errorMsg = "Http Code:" + statusCode;
29         if (!StringUtils.isEmpty(msoResponse)) {
30             String filteredJson;
31             try {
32                 ObjectMapper objectMapper = new ObjectMapper();
33                 filteredJson = StringUtils.defaultIfEmpty(
34                         objectMapper.readTree(msoResponse).path("serviceException").toString().replaceAll("[\\{\\}]","") ,
35                         msoResponse
36                 );
37             } catch (JsonParseException e) {
38                 filteredJson = msoResponse;
39             } catch (IOException e) {
40                 throw new GenericUncheckedException(e);
41             }
42
43             errorMsg = errorMsg + ", " + filteredJson;
44         }
45         return errorMsg;
46     }
47 }