76 lines
2.5 KiB
Java
76 lines
2.5 KiB
Java
package org.hso.ecommerce.api;
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import org.hso.ecommerce.controller.intern.customers.CustomerOrderController;
|
|
import org.hso.ecommerce.entities.shop.CustomerOrder;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.web.client.RestTemplateBuilder;
|
|
import org.springframework.http.*;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.client.RestTemplate;
|
|
import org.springframework.web.util.UriComponentsBuilder;
|
|
|
|
import java.util.*;
|
|
|
|
@Service
|
|
public class RestServiceForDelivery {
|
|
|
|
@Autowired
|
|
private final RestTemplateBuilder restTemplateBuilder = null;
|
|
|
|
|
|
public String getDeliveryID(CustomerOrder customerOrder)
|
|
{
|
|
String url = "http://[::1]:8082/newDelivery";
|
|
|
|
RestTemplate restTemplate = restTemplateBuilder.build();
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
Map<String, String> requestBody = new HashMap<>();
|
|
|
|
requestBody.put("name",customerOrder.destination.name);
|
|
requestBody.put("address",customerOrder.destination.addressString);
|
|
|
|
HttpEntity<Map<String, String>> entity = new HttpEntity<>(requestBody,headers);
|
|
|
|
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST,entity, String.class);
|
|
|
|
if (response.getStatusCode() == HttpStatus.OK)
|
|
{
|
|
return response.getBody();
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public CustomerOrderController.DeliveryData getDeliveryData(UUID trackingID) {
|
|
|
|
String url = "http://[::1]:8082/status";
|
|
|
|
RestTemplate restTemplate = restTemplateBuilder.build();
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url).queryParam("trackingID",trackingID.toString());
|
|
|
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
|
|
|
ResponseEntity<CustomerOrderController.DeliveryData> response = restTemplate.exchange(builder.toUriString(), HttpMethod.GET, entity, CustomerOrderController.DeliveryData.class);
|
|
|
|
if (response.getStatusCode() == HttpStatus.OK)
|
|
{
|
|
return response.getBody();
|
|
} else {
|
|
return null;
|
|
}
|
|
|
|
|
|
}
|
|
}
|