From 6fab548382389264d74077133ca7cbaf30cbb887 Mon Sep 17 00:00:00 2001 From: moustafatammam Date: Mon, 21 Nov 2022 20:48:53 +0200 Subject: [PATCH 1/2] create get customer end point and service --- .../msscbrewery/services/CustomerService.java | 11 ++++++++ .../services/CustomerServiceImpl.java | 20 ++++++++++++++ .../web/controller/CustomerController.java | 27 +++++++++++++++++++ .../msscbrewery/web/model/CustomerDto.java | 18 +++++++++++++ target/classes/application.properties | 1 + 5 files changed, 77 insertions(+) create mode 100644 src/main/java/guru/springframework/msscbrewery/services/CustomerService.java create mode 100644 src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java create mode 100644 src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java create mode 100644 src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java create mode 100644 target/classes/application.properties diff --git a/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java b/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java new file mode 100644 index 00000000..ce4bb113 --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java @@ -0,0 +1,11 @@ +package guru.springframework.msscbrewery.services; + +import guru.springframework.msscbrewery.web.model.CustomerDto; +import org.springframework.http.ResponseEntity; + +import java.util.UUID; + +public interface CustomerService { + + ResponseEntity getCustomer(UUID customerId); +} diff --git a/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java b/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java new file mode 100644 index 00000000..a669f8aa --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java @@ -0,0 +1,20 @@ +package guru.springframework.msscbrewery.services; + +import guru.springframework.msscbrewery.web.model.CustomerDto; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.UUID; + +@Service +public class CustomerServiceImpl implements CustomerService { + + @Override + public ResponseEntity getCustomer(UUID customerId) { + return new ResponseEntity<>(CustomerDto.builder() + .id(customerId) + .name("Moustafa") + .build(), HttpStatus.OK); + } +} diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java new file mode 100644 index 00000000..efd0abc1 --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java @@ -0,0 +1,27 @@ +package guru.springframework.msscbrewery.web.controller; + +import guru.springframework.msscbrewery.services.CustomerService; +import guru.springframework.msscbrewery.web.model.CustomerDto; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.UUID; + +@RequestMapping("/api/v1/customer") +@RestController +public class CustomerController { + + private CustomerService customerService; + + public CustomerController(CustomerService customerService) { + this.customerService = customerService; + } + + @GetMapping({"{customerId}"}) + public ResponseEntity getCustomer(@PathVariable("customerId") UUID customerId) { + return customerService.getCustomer(customerId); + } +} diff --git a/src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java b/src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java new file mode 100644 index 00000000..bea4b0fe --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java @@ -0,0 +1,18 @@ +package guru.springframework.msscbrewery.web.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.UUID; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class CustomerDto { + + private UUID id; + private String name; +} diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1 @@ + From 3a45601286b31318160fb033dbcecdfa3b90d75b Mon Sep 17 00:00:00 2001 From: moustafatammam Date: Mon, 21 Nov 2022 20:59:00 +0200 Subject: [PATCH 2/2] Make customer service returns a CustomerDto instead of a ResponseEntity --- .../msscbrewery/services/CustomerService.java | 2 +- .../msscbrewery/services/CustomerServiceImpl.java | 6 +++--- .../msscbrewery/web/controller/CustomerController.java | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java b/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java index ce4bb113..3fa55276 100644 --- a/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java +++ b/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java @@ -7,5 +7,5 @@ public interface CustomerService { - ResponseEntity getCustomer(UUID customerId); + CustomerDto getCustomer(UUID customerId); } diff --git a/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java b/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java index a669f8aa..b1246a55 100644 --- a/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java +++ b/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java @@ -11,10 +11,10 @@ public class CustomerServiceImpl implements CustomerService { @Override - public ResponseEntity getCustomer(UUID customerId) { - return new ResponseEntity<>(CustomerDto.builder() + public CustomerDto getCustomer(UUID customerId) { + return CustomerDto.builder() .id(customerId) .name("Moustafa") - .build(), HttpStatus.OK); + .build(); } } diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java index efd0abc1..e3c3ea0b 100644 --- a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java @@ -2,6 +2,7 @@ import guru.springframework.msscbrewery.services.CustomerService; import guru.springframework.msscbrewery.web.model.CustomerDto; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -22,6 +23,6 @@ public CustomerController(CustomerService customerService) { @GetMapping({"{customerId}"}) public ResponseEntity getCustomer(@PathVariable("customerId") UUID customerId) { - return customerService.getCustomer(customerId); + return new ResponseEntity<>(customerService.getCustomer(customerId), HttpStatus.OK); } }