diff --git a/src/main/java/com/example/template/config/Config.java b/src/main/java/com/example/template/config/Config.java new file mode 100644 index 0000000..03e166f --- /dev/null +++ b/src/main/java/com/example/template/config/Config.java @@ -0,0 +1,52 @@ +package com.example.template.config; + +import com.example.template.Order; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.hateoas.Link; +import org.springframework.hateoas.Resource; +import org.springframework.hateoas.ResourceProcessor; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.client.RestTemplate; + +import java.net.MalformedURLException; +import java.net.URL; + + +@Configuration +public class Config { + + @Bean + RestTemplate restTemplate() { + RestTemplate restTemplate = new RestTemplate(); + MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); + converter.setObjectMapper(new ObjectMapper()); + restTemplate.getMessageConverters().add(converter); + return restTemplate; + } + + @Bean + public ResourceProcessor> orderProcessor() { + + return new ResourceProcessor>() { + + @Override + public Resource process(Resource resource) { + + Link selfLink = resource.getLink("self"); + String selfLinkUrl = selfLink.getHref(); + try { + URL url = new URL(selfLinkUrl); + + resource.add(new Link(url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + "/deliveries/search/findByOrderIdOrderByDeliveryIdDesc?orderId=" + resource.getContent().getId(), "delivery")); + + } catch (MalformedURLException e) { + e.printStackTrace(); + } + + return resource; + } + }; + } +} diff --git a/src/main/java/com/example/template/config/RestTemplateConfig.java b/src/main/java/com/example/template/config/RestTemplateConfig.java deleted file mode 100644 index 5ba72f9..0000000 --- a/src/main/java/com/example/template/config/RestTemplateConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.template.config; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.client.RestTemplate; - - -@Configuration -public class RestTemplateConfig { - - @Bean - RestTemplate restTemplate() { - RestTemplate restTemplate = new RestTemplate(); - MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); - converter.setObjectMapper(new ObjectMapper()); - restTemplate.getMessageConverters().add(converter); - return restTemplate; - } - -}