2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2018 - 2019 Nokia. All rights reserved.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.vid.mso;
24 import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER;
26 import com.fasterxml.jackson.core.JsonParseException;
27 import com.fasterxml.jackson.core.JsonProcessingException;
28 import io.joshworks.restclient.http.HttpResponse;
29 import java.io.IOException;
30 import org.apache.commons.lang3.StringUtils;
31 import org.apache.commons.lang3.exception.ExceptionUtils;
32 import org.onap.vid.exceptions.GenericUncheckedException;
34 public class MsoUtil {
40 public static MsoResponseWrapper wrapResponse(RestObject<String> restObject) {
41 String response = restObject.get() != null ? restObject.get() : restObject.getRaw();
42 int status = restObject.getStatusCode();
43 return new MsoResponseWrapper(status, response);
46 public static <T> MsoResponseWrapper wrapResponse(HttpResponse<T> httpResponse) {
47 MsoResponseWrapper msoResponseWrapper = new MsoResponseWrapper();
48 msoResponseWrapper.setStatus(httpResponse.getStatus());
49 if (httpResponse.getRawBody() != null) {
51 T body = httpResponse.getBody();
52 String entityStr = (body instanceof String || body==null) ? (String) body :
53 JACKSON_OBJECT_MAPPER.writeValueAsString(httpResponse.getBody());
54 msoResponseWrapper.setEntity(entityStr);
55 } catch(JsonProcessingException e) {
56 ExceptionUtils.rethrow(e);
59 return msoResponseWrapper;
62 public static <T> MsoResponseWrapper2<T> wrapResponse2(HttpResponse<String> httpResponse, Class<T> clazz) {
63 String raw = httpResponse.getBody(); // As body's T is String, use getBody as a simple way to get raw
66 T entity = JACKSON_OBJECT_MAPPER.readValue(raw, clazz);
67 return new MsoResponseWrapper2<>(httpResponse.getStatus(), entity, raw);
68 } catch (JsonProcessingException exception) {
69 return new MsoResponseWrapper2<>(httpResponse.getStatus(), null, raw);
70 } catch (IOException exception) {
71 ExceptionUtils.rethrow(exception);
75 return new MsoResponseWrapper2<>(httpResponse.getStatus(), null, null);
78 public static String formatExceptionAdditionalInfo(int statusCode, String msoResponse) {
79 String errorMsg = "Http Code:" + statusCode;
80 if (!StringUtils.isEmpty(msoResponse)) {
83 filteredJson = StringUtils.defaultIfEmpty(
84 JACKSON_OBJECT_MAPPER.readTree(msoResponse).path("serviceException").toString().replaceAll("[\\{\\}]","") ,
87 } catch (JsonParseException e) {
88 filteredJson = msoResponse;
89 } catch (IOException e) {
90 throw new GenericUncheckedException(e);
93 errorMsg = errorMsg + ", " + filteredJson;