From 72577942b12dd4546350c5997f75cee6ae0bd4b4 Mon Sep 17 00:00:00 2001 From: jorgecacs Date: Fri, 17 Jan 2020 07:53:49 -0300 Subject: [PATCH] Initial commit --- .project | 2 +- .settings/org.eclipse.wst.common.component | 2 +- pom.xml | 42 +++++++++++++++++++++++++++++++++++++++--- src/main/java/com/rshk/demo/AppConfiguration.java | 7 ++++--- src/main/java/com/rshk/demo/beans/Customer.java | 9 ++++++--- src/main/java/com/rshk/demo/beans/SaveCustomerRespData.java | 17 +++++++++++++++++ src/main/java/com/rshk/demo/controllers/CustomerController.java | 30 ++++++++++++++++++++---------- src/main/java/com/rshk/demo/services/CustomerService.java | 15 +++++++++------ src/main/java/com/rshk/demo/services/CustomerServiceImpl.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------- src/main/resources/application.properties | 1 + src/main/webapp/WEB-INF/mvc-config.xml | 20 ++++++++++++++++++++ src/main/webapp/WEB-INF/web.xml | 30 +++++++++++++++++++++--------- src/test/resources/logback.xml | 22 ++++++++++++++++++++++ target/classes/application.properties | 1 + target/classes/com/rshk/demo/AppConfiguration.class | Bin 589 -> 0 bytes target/classes/com/rshk/demo/beans/Customer.class | Bin 2863 -> 0 bytes target/classes/com/rshk/demo/beans/SaveCustomerRespData.class | Bin 0 -> 1462 bytes target/classes/com/rshk/demo/controllers/CustomerController.class | Bin 2544 -> 0 bytes target/classes/com/rshk/demo/services/CustomerService.class | Bin 371 -> 0 bytes target/classes/com/rshk/demo/services/CustomerServiceImpl.class | Bin 939 -> 0 bytes target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.properties | 7 +++++++ target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.xml | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.properties | 7 ------- target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.xml | 30 ------------------------------ target/test-classes/logback.xml | 22 ++++++++++++++++++++++ 25 files changed, 342 insertions(+), 83 deletions(-) create mode 100644 src/main/java/com/rshk/demo/beans/SaveCustomerRespData.java create mode 100644 src/main/resources/application.properties create mode 100644 src/main/webapp/WEB-INF/mvc-config.xml create mode 100644 src/test/resources/logback.xml create mode 100644 target/classes/application.properties create mode 100644 target/classes/com/rshk/demo/beans/SaveCustomerRespData.class create mode 100644 target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.properties create mode 100644 target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.xml delete mode 100644 target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.properties delete mode 100644 target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.xml create mode 100644 target/test-classes/logback.xml diff --git a/.project b/.project index 281a955..16427e1 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ - demo_itau + demo_api diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 075f195..5b8b23e 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -4,7 +4,7 @@ - + diff --git a/pom.xml b/pom.xml index f2ac5e0..ccf1cd1 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.demo.roshka - demo_itau + demo_api 0.0.1-SNAPSHOT war DemoRshk @@ -23,8 +23,44 @@ com.fasterxml.jackson.core jackson-databind - 2.7.4 + 2.9.4 + + + + org.apache.httpcomponents + httpclient + 4.5.6 + + + + org.slf4j + jcl-over-slf4j + 1.7.20 + + + ch.qos.logback + logback-classic + 1.1.7 + + + javax + javaee-web-api + 6.0 + provided + + + + org.mockito + mockito-all + 1.9.5 + test + + + + junit + junit + 4.12 + test - \ No newline at end of file diff --git a/src/main/java/com/rshk/demo/AppConfiguration.java b/src/main/java/com/rshk/demo/AppConfiguration.java index 4d1795a..80320e5 100644 --- a/src/main/java/com/rshk/demo/AppConfiguration.java +++ b/src/main/java/com/rshk/demo/AppConfiguration.java @@ -2,13 +2,14 @@ package com.rshk.demo; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @Configuration @EnableWebMvc -public class AppConfiguration { +@PropertySource("classpath:application.properties") +public class AppConfiguration extends AnnotationConfigWebApplicationContext{ - @Value(value = "variable") - private String variable; } diff --git a/src/main/java/com/rshk/demo/beans/Customer.java b/src/main/java/com/rshk/demo/beans/Customer.java index 80e802a..49da37d 100644 --- a/src/main/java/com/rshk/demo/beans/Customer.java +++ b/src/main/java/com/rshk/demo/beans/Customer.java @@ -13,14 +13,17 @@ public class Customer { @JsonProperty(value = "customer_id", required = true) private int id; - + @JsonProperty(value = "customer_name", required = true) private String name; - + @JsonProperty(value = "customer_address", required = true) private String address; @JsonProperty(value = "customer_number", required = true) private String phoneNumber; - + + @JsonProperty(value = "customer_document", required = true) + private String document; + } diff --git a/src/main/java/com/rshk/demo/beans/SaveCustomerRespData.java b/src/main/java/com/rshk/demo/beans/SaveCustomerRespData.java new file mode 100644 index 0000000..4a7d9e1 --- /dev/null +++ b/src/main/java/com/rshk/demo/beans/SaveCustomerRespData.java @@ -0,0 +1,17 @@ +package com.rshk.demo.beans; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class SaveCustomerRespData { + + @JsonProperty(value = "data") + private int data; + +} diff --git a/src/main/java/com/rshk/demo/controllers/CustomerController.java b/src/main/java/com/rshk/demo/controllers/CustomerController.java index f2ad3dc..1a79629 100644 --- a/src/main/java/com/rshk/demo/controllers/CustomerController.java +++ b/src/main/java/com/rshk/demo/controllers/CustomerController.java @@ -7,6 +7,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @@ -17,7 +18,7 @@ import com.rshk.demo.beans.CustomerListData; import com.rshk.demo.services.CustomerService; @RestController -@RequestMapping("/customers") +@RequestMapping("/api-customers") public class CustomerController { @Autowired @@ -29,9 +30,7 @@ public class CustomerController { try { ResponseEntity response = null; - List customerList = customerService.getCustomers(); - - return new ResponseEntity(new CustomerListData(customerList), HttpStatus.OK); + return new ResponseEntity(customerService.getCustomers(), HttpStatus.OK); } catch (Exception e) { e.printStackTrace(); @@ -45,12 +44,23 @@ public class CustomerController { public ResponseEntity get(@PathVariable String id) { try { ResponseEntity response = null; - - Customer customer = customerService.get(id); - - return new ResponseEntity(new CustomerGetRespData(customer), HttpStatus.OK); - - }catch(Exception e) { + + return new ResponseEntity(customerService.get(id), HttpStatus.OK); + + } catch (Exception e) { + e.printStackTrace(); + return new ResponseEntity(new Error(), HttpStatus.UNPROCESSABLE_ENTITY); + } + } + + @RequestMapping(value = "/save", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity get(@RequestBody Customer customer) { + try { + ResponseEntity response = null; + + return new ResponseEntity(customerService.insert(customer), HttpStatus.OK); + + } catch (Exception e) { e.printStackTrace(); return new ResponseEntity(new Error(), HttpStatus.UNPROCESSABLE_ENTITY); } diff --git a/src/main/java/com/rshk/demo/services/CustomerService.java b/src/main/java/com/rshk/demo/services/CustomerService.java index 2499de0..50cbd80 100644 --- a/src/main/java/com/rshk/demo/services/CustomerService.java +++ b/src/main/java/com/rshk/demo/services/CustomerService.java @@ -3,13 +3,16 @@ package com.rshk.demo.services; import java.util.List; import com.rshk.demo.beans.Customer; +import com.rshk.demo.beans.CustomerGetRespData; +import com.rshk.demo.beans.CustomerListData; +import com.rshk.demo.beans.SaveCustomerRespData; public interface CustomerService { - - void insert(Customer customer); - - Customer get(String document); - - List getCustomers(); + + SaveCustomerRespData insert(Customer customer) throws Exception; + + CustomerGetRespData get(String document) throws Exception; + + CustomerListData getCustomers() throws Exception; } diff --git a/src/main/java/com/rshk/demo/services/CustomerServiceImpl.java b/src/main/java/com/rshk/demo/services/CustomerServiceImpl.java index 54e512e..19347cb 100644 --- a/src/main/java/com/rshk/demo/services/CustomerServiceImpl.java +++ b/src/main/java/com/rshk/demo/services/CustomerServiceImpl.java @@ -1,27 +1,102 @@ package com.rshk.demo.services; -import java.util.List; - +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import com.fasterxml.jackson.databind.ObjectMapper; import com.rshk.demo.beans.Customer; +import com.rshk.demo.beans.CustomerGetRespData; +import com.rshk.demo.beans.CustomerListData; +import com.rshk.demo.beans.SaveCustomerRespData; @Service public class CustomerServiceImpl implements CustomerService { - public void insert(Customer customer) { - // TODO Auto-generated method stub + @Value("${customer_mcs}") + private String mcsUrl; + + private final static Logger logger = LoggerFactory.getLogger(CustomerServiceImpl.class); + + public SaveCustomerRespData insert(Customer customer) throws Exception { + + try { + HttpClient client = HttpClientBuilder.create().build(); + + HttpPost request = new HttpPost(mcsUrl.concat("/save")); + logger.info("We're going to call -> " + request.getURI().toString()); + request.setEntity(new StringEntity(new ObjectMapper().writeValueAsString(customer))); + request.setHeader("Accept", "application/json"); + + request.setHeader("Content-type", "application/json"); + logger.info("Request -> " + request); + HttpResponse response = client.execute(request); + String responseString = EntityUtils.toString(response.getEntity()); + logger.info("Getting response -> " + responseString); + SaveCustomerRespData resp = new ObjectMapper().readValue(responseString, SaveCustomerRespData.class); + return resp; + + } catch (Exception e) { + logger.error("Error while trying to get customers ->", e); + e.printStackTrace(); + throw e; + } } - public Customer get(String document) { - // TODO Auto-generated method stub - return null; + public CustomerGetRespData get(String document) throws Exception { + try { + + HttpClient client = HttpClientBuilder.create().build(); + + HttpGet request = new HttpGet(mcsUrl.concat(String.format("/%s", document))); + logger.info("We're going to call -> " + request.getURI().toString()); + HttpResponse response = client.execute(request); + String responseString = EntityUtils.toString(response.getEntity()); + + logger.info("Getting response -> " + responseString); + + /// deserialize response body into an object + CustomerGetRespData data = new ObjectMapper().readValue(responseString, CustomerGetRespData.class); + + return data; + + } catch (Exception e) { + logger.error("Error while trying to get customer ->", e); + e.printStackTrace(); + throw e; + } } - public List getCustomers() { - // TODO Auto-generated method stub - return null; + public CustomerListData getCustomers() throws Exception { + + try { + HttpClient client = HttpClientBuilder.create().build(); + + HttpGet request = new HttpGet(mcsUrl.concat("/list")); + logger.info("We're going to call -> " + request.getURI().toString()); + + HttpResponse response = client.execute(request); + String responseString = EntityUtils.toString(response.getEntity()); + logger.info("Getting response -> " + responseString); + + CustomerListData data = new ObjectMapper().readValue(responseString, CustomerListData.class); + return data; + + } catch (Exception e) { + logger.error("Error while trying to get customers ->", e); + e.printStackTrace(); + throw e; + } + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..c3e72f0 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1 @@ +customer_mcs=http://localhost:8080/demo_mcs/customer \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/mvc-config.xml b/src/main/webapp/WEB-INF/mvc-config.xml new file mode 100644 index 0000000..4a6f919 --- /dev/null +++ b/src/main/webapp/WEB-INF/mvc-config.xml @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 35f72d4..a2d346f 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,12 +1,24 @@ - demo_itau - - index.html - index.htm - index.jsp - default.html - default.htm - default.jsp - + demo_api + + org.springframework.web.context.ContextLoaderListener + + + contextConfigLocation + /WEB-INF/mvc-config.xml + + + dispatcherServlet + org.springframework.web.servlet.DispatcherServlet + + contextConfigLocation + /WEB-INF/mvc-config.xml + + 1 + + + dispatcherServlet + / + \ No newline at end of file diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml new file mode 100644 index 0000000..cc91cf3 --- /dev/null +++ b/src/test/resources/logback.xml @@ -0,0 +1,22 @@ + + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 0000000..c3e72f0 --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1 @@ +customer_mcs=http://localhost:8080/demo_mcs/customer \ No newline at end of file diff --git a/target/classes/com/rshk/demo/AppConfiguration.class b/target/classes/com/rshk/demo/AppConfiguration.class index 7300708..85b1aec 100644 Binary files a/target/classes/com/rshk/demo/AppConfiguration.class and b/target/classes/com/rshk/demo/AppConfiguration.class differ diff --git a/target/classes/com/rshk/demo/beans/Customer.class b/target/classes/com/rshk/demo/beans/Customer.class index fac201d..92002c8 100644 Binary files a/target/classes/com/rshk/demo/beans/Customer.class and b/target/classes/com/rshk/demo/beans/Customer.class differ diff --git a/target/classes/com/rshk/demo/beans/SaveCustomerRespData.class b/target/classes/com/rshk/demo/beans/SaveCustomerRespData.class new file mode 100644 index 0000000..2f5579a Binary files /dev/null and b/target/classes/com/rshk/demo/beans/SaveCustomerRespData.class differ diff --git a/target/classes/com/rshk/demo/controllers/CustomerController.class b/target/classes/com/rshk/demo/controllers/CustomerController.class index fe655d0..4c75c62 100644 Binary files a/target/classes/com/rshk/demo/controllers/CustomerController.class and b/target/classes/com/rshk/demo/controllers/CustomerController.class differ diff --git a/target/classes/com/rshk/demo/services/CustomerService.class b/target/classes/com/rshk/demo/services/CustomerService.class index 017b746..0bd24c9 100644 Binary files a/target/classes/com/rshk/demo/services/CustomerService.class and b/target/classes/com/rshk/demo/services/CustomerService.class differ diff --git a/target/classes/com/rshk/demo/services/CustomerServiceImpl.class b/target/classes/com/rshk/demo/services/CustomerServiceImpl.class index fd84d92..db06227 100644 Binary files a/target/classes/com/rshk/demo/services/CustomerServiceImpl.class and b/target/classes/com/rshk/demo/services/CustomerServiceImpl.class differ diff --git a/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.properties b/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.properties new file mode 100644 index 0000000..3a0d635 --- /dev/null +++ b/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Fri Jan 17 07:51:56 PYST 2020 +version=0.0.1-SNAPSHOT +groupId=com.demo.roshka +m2e.projectName=demo_api +m2e.projectLocation=/Users/jorgecaceresflores/Documents/workspace-sts-3.9.11.RELEASE/demo_api +artifactId=demo_api diff --git a/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.xml b/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.xml new file mode 100644 index 0000000..ccf1cd1 --- /dev/null +++ b/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_api/pom.xml @@ -0,0 +1,66 @@ + + 4.0.0 + com.demo.roshka + demo_api + 0.0.1-SNAPSHOT + war + DemoRshk + + + + org.springframework + spring-webmvc + 5.0.8.RELEASE + + + org.projectlombok + lombok + 1.18.10 + provided + + + com.fasterxml.jackson.core + jackson-databind + 2.9.4 + + + + org.apache.httpcomponents + httpclient + 4.5.6 + + + + org.slf4j + jcl-over-slf4j + 1.7.20 + + + ch.qos.logback + logback-classic + 1.1.7 + + + javax + javaee-web-api + 6.0 + provided + + + + org.mockito + mockito-all + 1.9.5 + test + + + + junit + junit + 4.12 + test + + + \ No newline at end of file diff --git a/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.properties b/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.properties deleted file mode 100644 index 0bf01d0..0000000 --- a/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Tue Jan 14 21:44:08 PYST 2020 -version=0.0.1-SNAPSHOT -groupId=com.demo.roshka -m2e.projectName=demo_itau -m2e.projectLocation=/Users/jorgecaceresflores/Documents/workspace-sts-3.9.11.RELEASE/demo_itau -artifactId=demo_itau diff --git a/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.xml b/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.xml deleted file mode 100644 index f2ac5e0..0000000 --- a/target/m2e-wtp/web-resources/META-INF/maven/com.demo.roshka/demo_itau/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - 4.0.0 - com.demo.roshka - demo_itau - 0.0.1-SNAPSHOT - war - DemoRshk - - - - org.springframework - spring-webmvc - 5.0.8.RELEASE - - - org.projectlombok - lombok - 1.18.10 - provided - - - com.fasterxml.jackson.core - jackson-databind - 2.7.4 - - - - \ No newline at end of file diff --git a/target/test-classes/logback.xml b/target/test-classes/logback.xml new file mode 100644 index 0000000..cc91cf3 --- /dev/null +++ b/target/test-classes/logback.xml @@ -0,0 +1,22 @@ + + + + + + %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + + + + + + + \ No newline at end of file -- libgit2 0.26.0