1 package org.onap.so.client.namingservice;
3 import java.io.IOException;
4 import java.util.ArrayList;
7 import org.onap.namingservice.model.NameGenDeleteRequest;
8 import org.onap.namingservice.model.NameGenDeleteResponse;
9 import org.onap.namingservice.model.NameGenRequest;
10 import org.onap.namingservice.model.NameGenResponse;
11 import org.onap.so.client.exception.BadResponseException;
12 import org.onap.so.logger.MsoLogger;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.core.env.Environment;
15 import org.springframework.http.HttpEntity;
16 import org.springframework.http.HttpHeaders;
17 import org.springframework.http.HttpMethod;
18 import org.springframework.http.MediaType;
19 import org.springframework.http.ResponseEntity;
20 import org.springframework.stereotype.Component;
21 import org.springframework.web.client.HttpStatusCodeException;
22 import org.springframework.web.client.RestTemplate;
27 public class NamingClient{
28 private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, NamingClient.class);
29 private static final String ENDPOINT = "mso.naming.endpoint";
30 private static final String AUTH = "mso.naming.auth";
33 private RestTemplate restTemplate;
35 private Environment env;
37 private NamingClientResponseValidator namingClientResponseValidator;
39 public String postNameGenRequest(NameGenRequest request) throws BadResponseException, IOException {
40 String targetUrl = env.getProperty(ENDPOINT);
41 HttpHeaders headers = setHeaders(env.getProperty(AUTH));
42 msoLogger.info("Sending postNameGenRequest to url: " + targetUrl);
43 HttpEntity<NameGenRequest> requestEntity = new HttpEntity<>(request, headers);
44 ResponseEntity<NameGenResponse> response;
46 response = restTemplate.postForEntity(targetUrl, requestEntity, NameGenResponse.class);
47 }catch(HttpStatusCodeException e){
48 throw new BadResponseException(namingClientResponseValidator.formatError(e));
50 return namingClientResponseValidator.validateNameGenResponse(response);
53 public String deleteNameGenRequest(NameGenDeleteRequest request) throws BadResponseException, IOException {
54 String targetUrl = env.getProperty(ENDPOINT);
55 HttpHeaders headers = setHeaders(env.getProperty(AUTH));
56 msoLogger.info("Sending deleteNameGenRequest to url: " + targetUrl);
57 HttpEntity<NameGenDeleteRequest> requestEntity = new HttpEntity<>(request, headers);
58 ResponseEntity<NameGenDeleteResponse> response;
60 response = restTemplate.exchange(targetUrl, HttpMethod.DELETE, requestEntity, NameGenDeleteResponse.class);
61 }catch(HttpStatusCodeException e){
62 throw new BadResponseException(namingClientResponseValidator.formatError(e));
64 return namingClientResponseValidator.validateNameGenDeleteResponse(response);
67 private HttpHeaders setHeaders(String auth) {
68 HttpHeaders headers = new HttpHeaders();
69 headers.setContentType(MediaType.APPLICATION_JSON);
70 List<MediaType> acceptableMediaTypes = new ArrayList<>();
71 acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
72 headers.setAccept(acceptableMediaTypes);
73 headers.add(HttpHeaders.AUTHORIZATION, auth);