Merge "Service Proxy Consolidation"
[so.git] / bpmn / so-bpmn-tasks / src / main / java / org / onap / so / client / namingservice / NamingClient.java
1 package org.onap.so.client.namingservice;
2
3 import java.io.IOException;
4 import java.util.ArrayList;
5 import java.util.List;
6
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;
23
24
25
26 @Component
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";
31         
32         @Autowired
33         private RestTemplate restTemplate;
34         @Autowired
35     private Environment env;
36         @Autowired
37         private NamingClientResponseValidator namingClientResponseValidator;
38         
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;
45                 try{
46                          response = restTemplate.postForEntity(targetUrl, requestEntity, NameGenResponse.class);
47                 }catch(HttpStatusCodeException e){
48                         throw new BadResponseException(namingClientResponseValidator.formatError(e));
49                 }
50                 return namingClientResponseValidator.validateNameGenResponse(response);
51         }
52
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;
59                 try{
60                         response = restTemplate.exchange(targetUrl, HttpMethod.DELETE, requestEntity, NameGenDeleteResponse.class);
61                 }catch(HttpStatusCodeException e){
62                         throw new BadResponseException(namingClientResponseValidator.formatError(e));
63                 }
64                 return namingClientResponseValidator.validateNameGenDeleteResponse(response);
65         }
66
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);
74                 return headers;
75         }
76 }