Sonar +
[platform/core/security/suspicious-activity-monitor.git] / servers / dsm / src / main / java / com / samsung / dsm / rest / alive / AliveApiSenderImpl.java
1 package com.samsung.dsm.rest.alive;
2
3 import org.apache.log4j.Logger;
4 import org.springframework.http.ResponseEntity;
5 import org.springframework.web.client.HttpClientErrorException;
6 import org.springframework.web.client.ResourceAccessException;
7 import org.springframework.web.client.RestTemplate;
8
9 import java.net.URI;
10 import java.net.URISyntaxException;
11
12 import static java.lang.String.format;
13
14
15 public class AliveApiSenderImpl implements AliveApiSender {
16
17     private static final Logger LOG = Logger.getLogger(AliveApiSenderImpl.class);
18
19     private RestTemplate restTemplate;
20
21     private String host;
22
23     private String password;
24
25
26     public AliveApiSenderImpl(String host, String password) {
27         this.host = host;
28         this.password = password;
29         this.restTemplate = new RestTemplate();
30
31         LOG.debug("Server host: " + host);
32     }
33
34     @Override
35     public boolean alive(String login) throws AliveApiSenderError {
36         try {
37             String path = "%s/restapi/alive/devices/%s/%s";
38             String stringURI = format(path, host, login, password);
39             LOG.debug("Alive Api Sender: " + format(path, host, login, "<hidden>"));
40
41             ResponseEntity<Boolean> result = restTemplate.getForEntity(new URI(stringURI), Boolean.class);
42
43             return result.getBody();
44
45         } catch (URISyntaxException | HttpClientErrorException | ResourceAccessException e) {
46             throw new AliveApiSenderError("Error occurred on Alive Api sender", e);
47         }
48     }
49
50 }