2  * ============LICENSE_START=======================================================
 
   3  *  Copyright (C) 2019 Nordix Foundation.
 
   4  * ================================================================================
 
   5  * Licensed under the Apache License, Version 2.0 (the "License");
 
   6  * you may not use this file except in compliance with the License.
 
   7  * You may obtain a copy of the License at
 
   9  *      http://www.apache.org/licenses/LICENSE-2.0
 
  11  * Unless required by applicable law or agreed to in writing, software
 
  12  * distributed under the License is distributed on an "AS IS" BASIS,
 
  13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  14  * See the License for the specific language governing permissions and
 
  15  * limitations under the License.
 
  17  * SPDX-License-Identifier: Apache-2.0
 
  18  * ============LICENSE_END=========================================================
 
  20 package org.onap.so.aaisimulator.utils;
 
  22 import static org.onap.so.aaisimulator.utils.Constants.BASE_URL;
 
  23 import static org.onap.so.aaisimulator.utils.Constants.BI_DIRECTIONAL_RELATIONSHIP_LIST_URL;
 
  24 import static org.onap.so.aaisimulator.utils.Constants.RELATIONSHIP_LIST_RELATIONSHIP_URL;
 
  25 import static org.springframework.http.MediaType.APPLICATION_XML;
 
  27 import java.util.Arrays;
 
  28 import java.util.Enumeration;
 
  29 import javax.servlet.http.HttpServletRequest;
 
  30 import org.springframework.http.HttpHeaders;
 
  31 import org.springframework.http.MediaType;
 
  32 import org.springframework.web.util.UriComponentsBuilder;
 
  35  * @author Waqas Ikram (waqas.ikram@est.tech)
 
  38 public class HttpServiceUtils {
 
  40     private HttpServiceUtils() {}
 
  42     public static URI getBaseUrl(final HttpServletRequest request) {
 
  43         final StringBuffer url = request.getRequestURL();
 
  44         final String uri = request.getRequestURI();
 
  45         return UriComponentsBuilder.fromHttpUrl(url.substring(0, url.indexOf(uri))).path(BASE_URL).build().toUri();
 
  48     public static URI getBaseUrl(final StringBuffer requestUrl, final String requestUri) {
 
  49         return UriComponentsBuilder.fromHttpUrl(requestUrl.substring(0, requestUrl.indexOf(requestUri))).build()
 
  53     public static String getBaseServiceInstanceUrl(final HttpServletRequest request, final String relatedLink) {
 
  54         return UriComponentsBuilder.fromUri(getBaseUrl(request)).path(relatedLink).toUriString();
 
  57     public static HttpHeaders getHeaders(final HttpServletRequest request) {
 
  58         return getHeaders(request, APPLICATION_XML);
 
  61     public static HttpHeaders getHeaders(final HttpServletRequest request, MediaType mediaType) {
 
  62         final HttpHeaders headers = new HttpHeaders();
 
  63         for (final Enumeration<String> enumeration = request.getHeaderNames(); enumeration.hasMoreElements();) {
 
  64             final String headerName = enumeration.nextElement();
 
  65             headers.add(headerName, request.getHeader(headerName));
 
  67         headers.setContentType(mediaType);
 
  68         headers.setAccept(Arrays.asList(MediaType.APPLICATION_XML));
 
  72     public static String getTargetUrl(final String targetBaseUrl, final String relatedLink) {
 
  73         return UriComponentsBuilder.fromUriString(targetBaseUrl).path(relatedLink)
 
  74                 .path(BI_DIRECTIONAL_RELATIONSHIP_LIST_URL).toUriString();
 
  77     public static String getRelationShipListRelatedLink(final String requestUriString) {
 
  78         return requestUriString != null ? requestUriString.replaceFirst(RELATIONSHIP_LIST_RELATIONSHIP_URL, "")
 
  82     public static String getBiDirectionalRelationShipListRelatedLink(final String requestUriString) {
 
  83         return requestUriString != null ? requestUriString.replaceFirst(BI_DIRECTIONAL_RELATIONSHIP_LIST_URL, "")