import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
-import com.google.common.base.Optional;
/**
* This class provides the Generic Rest Adapter interface to the RestTemplate
- *
+ *
* @author lathishbabu.ganesan@est.tech
*
*/
}
@Override
- public <T> Optional<T> get(String uri, Class<?> clazz) {
+ public <T> ResponseEntity<T> get(String uri, Class<?> clazz) {
HttpEntity<?> entity = getHttpEntity(null);
- final ResponseEntity<T> response = invokeHttpRequest(uri, HttpMethod.GET, clazz, entity);
- return buildOptional(response);
+ return invokeHttpRequest(uri, HttpMethod.GET, clazz, entity);
}
@Override
- public <T> Optional<T> put(String uri, Object object) {
- HttpEntity<?> entity = getHttpEntity(object);
- final ResponseEntity<T> response = invokeHttpRequest(uri, HttpMethod.PUT, null, entity);
- return buildOptional(response);
+ public <T> ResponseEntity<T> put(String uri, String body) {
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ HttpEntity<String> entity = new HttpEntity<String>(body, headers);
+ return invokeHttpRequest(uri, HttpMethod.PUT, null, entity);
}
@Override
- public <T> Optional<T> delete(String uri) {
+ public <T> ResponseEntity<T> delete(String uri) {
HttpEntity<?> entity = getHttpEntity(null);
- final ResponseEntity<T> response = invokeHttpRequest(uri, HttpMethod.DELETE, null, entity);
- return buildOptional(response);
+ return invokeHttpRequest(uri, HttpMethod.DELETE, null, entity);
}
@SuppressWarnings("unchecked")
HttpEntity<?> entity) {
return (ResponseEntity<T>) restTemplate.exchange(uri, httpMethod, entity, clazz);
}
-
- private <T> Optional<T> buildOptional(ResponseEntity<T> response) {
- if (!response.getStatusCode().equals(HttpStatus.OK)
- | !response.getStatusCode().equals(HttpStatus.CREATED)
- | !response.getStatusCode().equals(HttpStatus.NO_CONTENT)) {
- log.error("Failed to get the Response");
- return Optional.absent();
- }
- if (response.hasBody()) {
- return Optional.of(response.getBody());
- }
- return Optional.absent();
- }
}